C# 如何将Unicode字符写入控制台?
我想知道,在控制台应用程序中,是否可以使用.NET编写类似C# 如何将Unicode字符写入控制台?,c#,.net,vb.net,console-application,C#,.net,Vb.net,Console Application,我想知道,在控制台应用程序中,是否可以使用.NET编写类似℃的字符。当我尝试写入此字符时,控制台输出一个问号。很可能您的输出编码设置为ASCII。在发送输出之前,请尝试使用此选项: Console.OutputEncoding = System.Text.Encoding.UTF8; (MSDN至支持文件。) 这里有一个小的控制台测试应用程序,你可能会觉得很方便: C# 您选择的控制台字体也可能不支持该特定字符。单击Windows工具栏菜单(如C:)并选择属性->字体。尝试其他字体,看看它们是
℃
的字符。当我尝试写入此字符时,控制台输出一个问号。很可能您的输出编码设置为ASCII。在发送输出之前,请尝试使用此选项:
Console.OutputEncoding = System.Text.Encoding.UTF8;
(MSDN至支持文件。)
这里有一个小的控制台测试应用程序,你可能会觉得很方便:
C#
您选择的控制台字体也可能不支持该特定字符。单击Windows工具栏菜单(如C:)并选择属性->字体。尝试其他字体,看看它们是否正确显示您的角色:
Console.OutputEncoding属性 请注意,成功地将Unicode字符显示到控制台需要以下条件:
- 控制台必须使用TrueType字体(如Lucida console或ConsoleAs)来显示字符
我在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.outpunecoding=System.Text.Encoding.UTF8代码>
对于某些字符,您需要安装额外的字体(即中文)
在Windows 10中首先转到区域和语言设置并安装对所需语言的支持:
之后,您可以转到命令提示比例(或默认值,如果您愿意)并选择一些支持您的语言的字体(如KaiTi中文):
现在,您可以开始了:
这对我来说很有用:
Console.outpunecoding=System.Text.Encoding.Default代码>
要显示某些符号,需要将命令提示符的字体设置为Lucida Console:
打开命令提示符
在命令提示的顶部栏上单击鼠标右键
单击属性
如果字体设置为光栅字体,请将其更改为Lucida Console
控制台.outputeneCoding
不能设置为编码.Unicode
(UTF-16)<代码>编码.UTF8是可能的。在.NET 4.5和更高版本中,也支持UTF-16 HM,这对我不起作用。我正在尝试打印印地语或韩语,幸运的是,在切换字体后,你可能不需要重新启动应用程序才能看到效果。@Cel:我发现NSimSun适用于中文和日文(以及英文)。这真是太好了!然而,我认为公认的答案仍然适用——如果控制台使用的字体不支持unicode字符,我相信这个示例将不起作用。但是,我无法检查,因为我目前无法访问Windows计算机。是的,我相信Sam是正确的。例如,我被命令提示符字体不支持我的字符集这一事实所困扰。非常感谢。更改控制台字体对我来说是一个解决方案:)(同时将控制台设置为使用UTF-8)
System.Console.Write('\uXXXX') //XXXX is hex Unicode for character
using System;
public class Test
{
public static void Main()
{
Console.Write('\u2103'); //℃ character code
}
}