如何将特殊字符(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;