1

在解析某些文档时,我得到了字符代码 146,它实际上是一个 ANSI 数字。将字符写入文本文件时,没有显示任何内容。如果我们将 char 写为 Unicode 数字 8217,则该字符可以正常显示。

谁能给我关于如何在 C# 中将 ANSI 数字 146 转换为 Unicode 8217 的建议。

参考:http ://www.alanwood.net/demos/ansi.html

谢谢

4

2 回答 2

8

“ANSI”确实是用词不当——有许多编码通常被称为“ANSI”。但是,如果您确定需要代码页 1252,则可以使用:

Encoding encoding = Encoding.GetEncoding(1252);
using (TextReader reader = File.OpenText(filename, encoding))
{
    // Read text and use it
}

或者

Encoding encoding = Encoding.GetEncoding(1252);
string text = File.ReadAllText(filename, encoding);

那是为了读取文件 - 写入文件是相同的想法。基本上,当您从二进制(例如文件内容)转换为文本时,请使用适当的Encoding对象。

于 2011-05-31T07:20:17.990 回答
3

我的建议是阅读Joel 的“每个软件开发人员必须了解的关于 Unicode 和字符集的绝对最低要求。您的问题涉及很多内容,我的经验是,如果您不明白,您只会与简单的答案作斗争。这些基础知识。阅读大约需要 15 分钟。

于 2011-05-31T07:21:08.423 回答