我一直试图找出差异很长一段时间。问题在于使用ANSI编码的文件具有日语字符,例如:‚È‚‚Æ‚à1‚‚ÌINCREMENTs‚ª•K—v‚Å‚·.
它在shift-jis中等效于少なくとも1つのINCREMENT行が必要です.
,预计将使用日语。
我需要在从网页上的文件(ANSI)中读取后显示这些字符。 UTF-8中还有一些其他文件显示的字符没有看到这个。我发现很难弄清楚什么是差异,我如何改变编码来做正确的事情.. 我使用c#来读取这个文件并显示它,如果在web上修改它,我还需要将字符串写回文件。这里有任何编码和解码模式吗?
答案 0 :(得分:6)
就代码页而言,“ANSI”(和.NET中的Encoding.Default
)基本上只是意味着“此系统使用的非Unicode代码页” - 究竟是什么代码页,取决于如何系统已配置,但在西欧系统上,它可能是Windows-1252。
对于文本来自的系统,“ANSI”似乎意味着Shift-JIS - 所以除非您的系统具有相同的代码页,否则您需要告诉您的代码将文本读作Shift-JIS
假设您正在使用StreamReader阅读文件,则有各种构造函数需要Encoding,因此只需使用Encoding.GetEncoding("shift_jis")
或{{1}获取Shift-JIS编码并使用它来构建StreamReader。