我有一个基于C#表单的程序并且一直在使用System.Text.Encoding.GetEncoding(1252)但是我在阅读非英文字符时遇到了麻烦,我发现了System.Text.Encoding.GetEncoding(1255)然而,我不知道改变这个的含义所以我希望有人可以对这些差异和可能的影响有所了解。
答案 0 :(得分:13)
我建议您阅读Joel Spolsky的文章The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
答案 1 :(得分:6)
当您使用GetEncoding(1252)时,您指定了Windows-1252 Encoding,它指定了西欧的拉丁字母。 GetEncoding(1255)是Windows-1255 encoding,用于写希伯来语。
答案 2 :(得分:3)
字符编码1255包括希伯来语符号,而1252则适用于西方语言。非英语符号恰好是希伯来语吗?
答案 3 :(得分:3)
您的编码应始终与用于创建文件的编码匹配。如果没有可用于指导此选择的元数据(或人),那么唯一要做的就是尝试每一个并查看哪些是清晰的。由于这显然属于您不了解的语言,因此如果语言清晰,您可能需要询问说该语言的人。你认识任何能阅读希伯来文的人吗?
答案 4 :(得分:2)
1252是Windows-1252西欧(Windows)
1255是Windows-1255希伯来语(Windows)
来源:http://msdn.microsoft.com/en-us/library/system.text.encodinginfo.codepage.aspx
答案 5 :(得分:2)
您可能希望使用其中一种“命名”Unicode编码,例如Encoding.UTF8
。但是,要回答你的问题 - page 1252 is "Western European (Windows)" and 1255 is "Hebrew (Windows)".
如果您不知道,代码页几乎是a relic of ASCII,您应该尽可能坚持使用Unicode。