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

Pie*_*aud 5 c# console character-encoding windows-console

我想要这个代码:

System.Console.Out.WriteLine ("œil");
Run Code Online (Sandbox Code Playgroud)

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

Console.OutputEncoding默认情况下设置为Western European (DOS)(CodePage设置为850,并WindowsCodePage在我的系统设置为1252).字符集包含特殊的OE和oe diphtongs(可以在Windows-1252上的维基百科文章中看到),但不知何故,我怀疑ISO-8859-1集中找不到的字符被丢弃/替换.

字符,如â,ç等得到正确显示在控制台上,但在扩展0x80的任何字符... 0x9F范围内都没有.

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

Dav*_*nan 5

像这样:

Console.OutputEncoding = System.Text.Encoding.UTF8;
System.Console.Out.WriteLine("œil");
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

  • 对我来说很好.你的控制台窗口中有什么字体? (2认同)