如何将特殊字符(0x80..0x9F)写入Windows控制台?

时间:2011-10-28 13:15:16

标签: c# character-encoding console windows-console

我想要这段代码:

System.Console.Out.WriteLine ("œil");

在我的测试程序中显示œil而不是oil

我的系统默认将Console.OutputEncoding设置为Western European (DOS)CodePage设置为850,WindowsCodePage设置为1252)。字符集包含特殊的OE和oe diphtongs(可以在Wikipedia article on Windows-1252上看到)但不知何故,我怀疑ISO-8859-1集中找不到的字符会被丢弃/替换。

âç等字符在控制台上正确显示,但扩展0x80 ... 0x9F范围内的任何字符都不是。

如何在控制台上正确显示它们?

2 个答案:

答案 0 :(得分:5)

像这样:

Console.OutputEncoding = System.Text.Encoding.UTF8;
System.Console.Out.WriteLine("œil");

不要忘记为控制台窗口选择支持所需字符的字体。这是使用Consolas字体的控制台窗口的屏幕截图。

enter image description here

答案 1 :(得分:2)

你可以像这样设置控制台上的输出编码......

Console.OutputEncoding = Encoding.UTF8;