在控制台中显示UTF-8字符

Adr*_*rya 30 c#

如何在控制台UTF8字符中打印?

随着Console.Writeline("î??â?")我看到îasât控制台.

小智 65

Console.OutputEncoding = Encoding.UTF8;
Run Code Online (Sandbox Code Playgroud)

  • 为什么我们可能会得到`System.IO.IOException: 'The handle is invalid.` 该命令? (3认同)

Ree*_*sey 10

您可以找到一些可以演示如何将多字节字符集写入控制台的黑客,但它们不可靠.它们需要您的控制台字体支持它,并且通常,我会避免使用它.(如果您的用户不做他们的额外工作,所有这些技术都会中断...因此他们不可靠.)

如果您需要编写Unicode输出,我强烈建议您使用GUI应用程序来处理此问题,而不是使用控制台.制作一个简单的GUI来将输出写入支持Unicode的控件是相当容易的.

  • 我将假设在2010年初不存在`Console.OutputEncoding`,但在接受的答案中提到它会很好. (14认同)

小智 7

尝试这个 :

using System.Diagnostics
...
Debug.WriteLine(..);// will output utf-8 charset
Run Code Online (Sandbox Code Playgroud)


小智 5

使用 Console.OutputEncoding 就足够了。.NET 中的所有字符串对象默认都是 unicode,因此将控制台的输出编码更改为 UTF-8 将在现代 Windows 安装中按照您的需要工作。

控制台中的默认编码取决于配置,但很可能是美国语言的 IBM437 或某些本地代码页。