在解析某些文档时,我得到的字符代码146实际上是ANSI编号。将char写入文本文件时,不会显示任何内容。如果我们将字符编写为Unicode编号-8217,则字符显示正常。
任何人都可以就如何在C#中将ANSI编号146转换为Unicode 8217提供建议。
参考:http://www.alanwood.net/demos/ansi.html
由于
答案 0 :(得分: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
对象。
答案 1 :(得分:3)
我的建议是阅读Joel's "Absolute Minimum Every Software Developer Must Know About Unicode and Character Sets。你的问题涉及很多,而我的经验是,如果你不理解这些基础知识,那么你就会反对简单的答案。大约需要15分钟阅读。