Encoding.GetEncoding(1255)和Encoding.GetEncoding(1252)有什么区别?

9

我有一个基于C#表单的程序,一直在使用

System.Text.Encoding.GetEncoding(1252)

但是我读取非英语字符时遇到了问题,我发现

System.Text.Encoding.GetEncoding(1255)

可以解决这个问题,但我不知道更改这个设置会有什么影响,希望有人能解释一下它们之间的区别和可能的影响。

6个回答

14

我建议您阅读Joel Spolsky的文章《Unicode和字符集的绝对最低限度:每个软件开发者绝对必须知道(无例外)!》(链接)


6
当您使用GetEncoding(1252)时,您正在指定Windows-1252编码,该编码指定了西欧的拉丁字母表。 GetEncoding(1255)是Windows-1255编码,用于书写希伯来语。

3

字符编码1255包括希伯来符号,而1252则面向西方语言。这是否意味着非英语符号恰好是希伯来语?


正确,这些字符是希伯来文。 - Jonathan

3

3

您的编码应始终与用于创建文件的编码相匹配。如果没有可用的元数据(或人员)来指导此选择,则唯一要做的就是尝试每个编码并查看哪个可读。由于显然是在您不懂的语言中,您可能需要询问会说希伯来语的人是否可读。您认识会说希伯来语的人吗?


2

嗨,马克,当使用UTF8时,我可以加载文件,但是我看到的是���而不是希伯来字符。UTF8应该可以工作吗?谢谢 - Jonathan
@Jonathan - 这些数据来自哪里?是手动输入的,还是从文件中加载的?还是复制粘贴的? - Mark Brackett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接