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

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

使用Console.Writeline("îăşâţ")我在控制台中看到了îasât

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

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

 Console.OutputEncoding = Encoding.UTF8; 

您无法在控制台中打印Unicode字符,它仅支持当前代码页中可用的字符。 不可用的字符将转换为最接近的等效字符或问号。

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

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