【问题标题】:How to replace the following characters如何替换以下字符
【发布时间】:2011-06-25 15:13:17
【问题描述】:

我有 eml 文件,我在 c# 中使用 streamreader 解析它们。问题是这些 eml 文件分别包含 =C5=9F=C4=B1 şı

我正在使用以下代码,但我认为它不是设置 eml 文件的生产者在解析生成的文件之前对其进行编码的编码的正确位置,因此我认为我需要用适当的 Unicode 字符替换它们. fsEML 是我使用 file.read() 创建的文件流类的一个实例。

StreamReader sr = new StreamReader(fsEML, System.Text.Encoding.UTF8,false);

【问题讨论】:

  • 听起来您应该解码文件的内容,以获取纯 UTF-8 文本。你现在看到的东西没有太大的交互意义。
  • 您的 eml 文件似乎使用了某种 MIME 编码,您应该尝试解码。
  • eml 文件的编码是 UTF8 ,我只是使用了 Server.HtmlDecode 它返回相同的字符串,即 =C5=9F
  • 编码不是 UTF-8 或 HTML 编码。再看一遍。 :) 看来您已经理解 =C5=9F 以某种方式表示 ş,所以听起来您快到了。
  • 谢谢,那么我应该用什么方法来替换它们,我不知道其中会有多少。 =C5=9F 和 =C4=B1 是我唯一知道的。

标签: c# unicode encoding


【解决方案1】:

这种编码称为Quoted-printable。 .Net 中有一些功能可以对其进行解码,但没有很好地公开,请参阅this answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2013-05-10
    相关资源
    最近更新 更多