Answers:
您的输出编码可能设置为ASCII。在发送输出之前,尝试使用此方法:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(MSDN 链接至支持文档。)
这是一个小型控制台测试应用程序,您可能会发现它很方便:
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
您选择的控制台字体也可能不支持该特定字符。单击Windows工具栏菜单(类似于C :.的图标),然后选择属性->字体。尝试其他一些字体,看它们是否正确显示了您的字符:
我在MSDN上找到了一些优雅的解决方案
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
这个简单的程序直接在屏幕上写℃。
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}
Console.OutputEncoding属性
http://msdn.microsoft.com/library/system.console.outputencoding(v=vs.110).aspx
请注意,向控制台成功显示Unicode字符需要满足以下条件:
这对我有用:
Console.OutputEncoding = System.Text.Encoding.Default;
要显示某些符号,需要将命令提示符的字体设置为Lucida Console:
打开命令提示符;
右键单击命令提示符的顶部栏;
单击属性;
如果字体设置为“光栅字体”,则将其更改为Lucida Console。
Console.OutputEncoding
无法设置为Encoding.Unicode
(UTF-16)。Encoding.UTF8
但是,这是可能的。