【发布时间】:2015-09-20 12:19:02
【问题描述】:
在调试中,我确实正确地看到了字符。为什么 Visual Studio 和 System.Console 编码不同?如何使控制台的编码与VS的编码匹配?
有几个帖子询问类似的问题,但我们缺乏一个直截了当的答案。我在下面列出了我尝试过的所有替代方案 - 没有奏效。
有些帖子提到,为了让控制台正确打印它们,您需要正确设置控制台输出编码 + 具有支持相关字符集的字体。我只是找不到更改控制台字体的答案(如果可能的话)。
1.将Console.OutputEncoding设置为UTF8或
Encoding.GetEncoding(1255);
就我而言,我正在处理希伯来字符。
2.尝试打印
的结果Encoding.GetEncoding(1255).GetString(Encoding.Default.GetBytes(myString))
再次,在调试中,字符串确实显示正确。是的,我对字符编码主题不太熟悉,我希望通过 System.Console 显示非 ascii 字符这样简单的事情不需要这样做。
【问题讨论】:
-
由于字体原因,控制台无法正确打印。
-
@HamletHakobyan:哈姆雷特,我忘了在我的帖子中提到字体,更新了它 - 简而言之,如果字体是解决方案,如何改变控制台的 - 我找不到这样的回答。
-
字体选择不多。如果您的操作系统语言是英语,我认为没有定义希伯来字符集的控制台字体。如果您为操作系统安装希伯来语语言包,也许可以解决问题。
-
您是否也设置了控制台字体,如我的链接中所述?
-
@AlastairMcCormack:我编辑了您提到的帖子中的答案,添加了解决我的问题的链接,是 est,指导我如何向命令提示符添加其他显示字体。我宁愿保留这篇文章,只是因为我认为(显然是因为我写了它的事实而产生了偏见)它更简洁明了地找到了解决方案。