ansi到unicode转换

时间:2011-05-31 07:16:02

标签: c# encoding typography

在解析某些文档时,我得到的字符代码146实际上是ANSI编号。将char写入文本文件时,不会显示任何内容。如果我们将字符编写为Unicode编号-8217,则字符显示正常。

任何人都可以就如何在C#中将ANSI编号146转换为Unicode 8217提供建议。

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

由于

2 个答案:

答案 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分钟阅读。