如何将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 } }