如何将特殊字符(0x80..0x9F)写入Windows控制台?
我想要这个代码:
System.Console.Out.WriteLine ("œil");
在我的测试程序中显示œil
而不是oil
。
在我的系统上, Console.OutputEncoding
默认设置为Western European (DOS)
( CodePage
设置为850, WindowsCodePage
设置为1252)。 字符集包含特殊的OE和oe diphtongs(可以在Windows-1252上的维基百科文章中看到),但不知何故,我怀疑ISO-8859-1集中找不到的字符被丢弃/替换。
诸如â
, ç
等字符在控制台上正确显示,但扩展0x80 … 0x9F范围内的任何字符都没有。
如何在控制台上正确显示它们?
像这样:
Console.OutputEncoding = System.Text.Encoding.UTF8; System.Console.Out.WriteLine("œil");
不要忘记为控制台窗口选择支持所需字符的字体。 这是使用Consolas字体的控制台窗口的屏幕截图。
您可以在控制台上设置输出编码,如下所示……
Console.OutputEncoding = Encoding.UTF8;