Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将Unicode字符写入控制台?_C#_.net_Vb.net_Console Application - Fatal编程技术网

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

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:)并选择属性->字体。尝试其他字体,看看它们是

我想知道,在控制台应用程序中,是否可以使用.NET编写类似
的字符。当我尝试写入此字符时,控制台输出一个问号。

很可能您的输出编码设置为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
        }
    }