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

时间:2011-04-21 21:55:37

标签: c# .net vb.net console-application

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

5 个答案:

答案 0 :(得分:166)

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

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

(MSDN link支持文档。)

这里有一个方便的控制台测试应用程序:

<强> 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字体也可能不支持该特定字符。单击Windows工具栏菜单(图标如C:。)并选择属性 - &gt;字体。尝试其他一些字体,看看它们是否正确显示了你的角色:

picture of console font edit

答案 1 :(得分:8)

我在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
    }
}

答案 2 :(得分:7)

Console.OutputEncoding属性

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

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

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

答案 3 :(得分:1)

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

对于某些字符,您需要安装其他字体(即中文)。

Windows 10 中,首先转到 区域和语言设置 ,并安装所需语言的支持: enter image description here

此后,您可以转到 命令提示符属性(如果需要,可以输入默认值) ,然后选择一些支持您的语言的字体(例如 KaiTi (在中文情况下): enter image description here

现在您可以开始了: enter image description here

答案 4 :(得分:1)

这对我有用:

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

要显示某些符号,需要将命令提示符的字体设置为Lucida Console:

  1. 打开命令提示符;

  2. 右键单击命令提示符顶部的栏;

  3. 点击属性;

  4. 如果将字体设置为“光栅字体”,请将其更改为Lucida Console。