【问题标题】:Parsing and replacing special characters from file解析和替换文件中的特殊字符
【发布时间】:2010-10-29 11:07:32
【问题描述】:

我在一个文件中有以下文本...

blah blah ñ blah

注意 ñ 符号。

我正在使用StreamReader.ReadLine 阅读此内容,然后尝试使用string.Replace 替换特殊字符。

由于某种原因,这不起作用,它似乎与StreamReader 有关。当我在阅读该行后检查调试器中的字符串时,我得到了文本编辑器在无法呈现字符时显示的那个框形状。

直接在代码中尝试类似效果很好......

int test = "helloñworld".IndexOf('ñ');

所以我认为它一定是 StreamReader。

有什么想法吗?

【问题讨论】:

  • 您是否使用任何编码?看,这个链接可以帮助你,因为它处理一些类似的问题:stackoverflow.com/questions/640242/…
  • 我的意思是,他是否专门给出了任何特定的编码?不是隐含的,而是明确指定的。

标签: c# .net special-characters streamreader


【解决方案1】:

使用StreamReader(Stream, Encoding) 构造函数或StreamReader(String, Encoding) 以正确编码的文本文件创建 StreamReader。现在常见的编码是拉丁语 1 或 UTF-8。

【讨论】:

  • 我怎么知道我的文本文件的编码是什么?
  • @fear:我猜是你保存的。根据您的编辑器,可以是 OEM 字符集(CP850 或 437)、拉丁语 1 到 Unicode(UTF-8 或 UTF-16)。不过,我猜 CP1252 是最有可能的选择。
  • 不,我没有保存它,它是从一个有 20 年历史的数据库中导出的。无论如何,经过反复试验,UTF7 似乎可以工作。
【解决方案2】:

在重载的 Streamreader 构造函数中设置正确的编码。

希望这会有所帮助, 伊利亚

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多