5

一段时间以来,我一直试图找出差异。问题在于 ANSI 编码的文件包含日文字符,例如:­‚È‚­‚Æ‚à1‚‚ÌINCREMENTs‚ª•K—v‚Å‚·.它在 shift-jis 中等效,少なくとも1つのINCREMENT行が必要です.预计为日文。

从网页上的文件(ANSI)读取后,我需要显示这些字符。UTF-8 中还有一些其他文件显示的字符没有看到这个。我发现很难弄清楚有什么区别以及如何更改编码以在这里做正确的事情。我使用 c# 来读取这个文件并显示它,如果它在 web 上修改,我还需要将字符串写回文件中. 这里有任何编码和解码模式吗?

4

1 回答 1

7

就代码页而言,“ANSI”(Encoding.Default在 .NET 中)基本上只是表示“该系统使用的非 Unicode 代码页”——确切地说是什么代码页,取决于系统的配置方式,但在西方欧洲系统,很可能是Windows-1252。

对于该文本来自的系统,“ANSI”似乎表示 Shift-JIS - 因此除非您的系统具有相同的代码页,否则您需要告诉您的代码将文本读取为 Shift-JIS。

假设您正在使用StreamReader读取文件,则有各种使用Encoding的构造函数,因此只需使用Encoding.GetEncoding("shift_jis")or获取 Shift-JIS 编码Encoding.GetEncoding(932)并使用它来构造您的 StreamReader。

于 2012-04-18T13:11:56.387 回答