我已经试图弄清楚其中的区别已经有相当长一段时间了。问题出在一个使用ANSI编码的文件中包含日语字符,比如:‚È‚‚Æ‚à1‚‚ÌINCREMENTs‚ª•K—v‚Å‚·.,它在shift-jis中的等价物是少なくとも1つのINCREMENT行が必要です.,它应该是日语。
我需要显示这些字符后,从一个网页上读取文件(在ANSI)。还有一些UTF-8格式的其他文件显示了正确的字符,但没有看到这一点。我发现很难弄清楚有什么不同,以及我如何在这里更改编码来做正确的事情。我使用c#读取这个文件并显示它,如果它在web上修改,我还需要将字符串写回文件中。这里有没有编码和解码模式?
发布于 2012-04-18 21:11:56
就代码页而言,"ANSI“(和Windows1252中的Encoding.Default )基本上只表示”该系统使用的非Unicode代码页“--确切的代码页取决于系统的配置,但在西欧系统上,它很可能是.NET-1252。
对于该文本所在的系统,"ANSI“似乎意味着Shift-JIS -因此,除非您的系统具有相同的代码页,否则您需要告诉您的代码将文本读取为Shift-JIS。
假设您正在使用StreamReader读取文件,有各种接受Encoding的构造函数,因此只需使用Encoding.GetEncoding("shift_jis")或Encoding.GetEncoding(932)获取Shift-JIS编码,并使用它来构造StreamReader即可。
https://stackoverflow.com/questions/10209766
复制相似问题