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

发布于 2024-12-12 10:06:41 字数 639 浏览 0 评论 0原文

我想要这样的代码:

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

显示 œil 而不是 oil,就像我的测试程序中那样。

Console.OutputEncoding 默认设置为 西欧 (DOS)CodePage 设置为 850,WindowsCodePage 设置为到 1252)在我的系统上。字符集包含特殊的 OE 和 oe 双元符号(如 有关 Windows-1252 的维基百科文章所示)但不知何故,我怀疑在 ISO-8859-1 设置被丢弃/替换。

âç 等字符可以在控制台上正确显示,但扩展 0x80 ... 0x9F 范围内的任何字符则无法正确显示。

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

I would like to have this code:

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

display œil instead of oil as it does in my test program.

The Console.OutputEncoding is set by default to Western European (DOS) (CodePage set to 850 and WindowsCodePage set to 1252) on my system. The character set contains the special OE and oe diphtongs (as can be seen on the Wikipedia article on Windows-1252) but somehow, I suspect that the characters not found in the ISO-8859-1 set get discarded/replaced.

Characters such as â, ç, etc. get properly displayed on the console, but any character in the extended 0x80 ... 0x9F range are not.

How can I properly display them on the console?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你的心境我的脸 2024-12-19 10:06:41

像这样:

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

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

在此处输入图像描述

Like this:

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

Don't forget to select a font for your console window that supports the characters you need. This is a screen shot of my console window using the Consolas font.

enter image description here

萌无敌 2024-12-19 10:06:41

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

Console.OutputEncoding = Encoding.UTF8;

You could set the output encoding on the console like this...

Console.OutputEncoding = Encoding.UTF8;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文