如何将Unicode字符写入控制台?

我想知道是否可以在控制台应用程序中使用.NET编写像。 当我试图写这个字符时,控制台输出一个问号。

您的输出编码可能被设置为ASCII。 在发送输出之前尝试使用它:

 Console.OutputEncoding = System.Text.Encoding.UTF8; 

(MSDN 链接到支持文档。)

这里有一个小小的控制台testing应用程序,

C#

 using System; using System.Text; public static class ConsoleOutputTest { public static void Main() { Console.OutputEncoding = System.Text.Encoding.UTF8; for (var i = 0; i <= 1000; i++) { Console.Write(Strings.ChrW(i)); if (i % 50 == 0) { // break every 50 chars Console.WriteLine(); } } Console.ReadKey(); } } 

VB.NET

 imports Microsoft.VisualBasic imports System public module ConsoleOutputTest Sub Main() Console.OutputEncoding = System.Text.Encoding.UTF8 dim i as integer for i = 0 to 1000 Console.Write(ChrW(i)) if i mod 50 = 0 'break every 50 chars Console.WriteLine() end if next Console.ReadKey() End Sub end module 

也有可能你的Console字体select不支持那个特定的字符。 点击Windows工具栏菜单(像C:的图标),然后select属性 – >字体。 尝试一些其他字体,看看他们是否正确显示你的性格:

控制台字体编辑的图片

Console.OutputEncoding属性

http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx

请注意,成功向显示控制台显示Unicode字符需要以下内容:

  • 控制台必须使用TrueType字体(如Lucida Console或Consolas)来显示字符

我在MSDN上find了一些优雅的解决scheme

 System.Console.Write('\uXXXX') //XXXX is hex Unicode for character 

这个简单的程序写在屏幕上。

 using System; public class Test { public static void Main() { Console.Write('\u2103'); //℃ character code } }