如何将非ASCII字符输出到CMD.exe会话中?

时间:2018-11-05 18:59:16

标签: c# cmd console-application

当我尝试从C#命令行应用程序输出Unicode字符8595(十进制)作为向下箭头时,控制台没有显示向下箭头,而是在框中显示了问号。

>

有没有一种方法可以输出向下箭头字符,使其在控制台中显示?

我唯一要编写代码的工具是Visual Studio。下面是我的代码:

    static void Main(string[] args)
    {
        char arrow = (char)8595;
        Console.WriteLine(arrow);
    }

这是我运行命令行应用程序时在cmd.exe窗口中看到的图像(请注意“ Press”中字母“ P”上方的方框问号):

enter image description here

2 个答案:

答案 0 :(得分:1)

您需要让控制台知道您要向其中写入非ASCII字符。

如下更改代码:

static void Main(string[] args)
{
    char arrow = (char)8595;

    Console.OutputEncoding = System.Text.Encoding.UTF8;  // set encoding of console
    Console.WriteLine(arrow);
}

答案 1 :(得分:0)

我不知道这是否可行,但是按alt +'numpad'26然后将其保留,它应该为您提供箭头符号,然后在控制台中打印出来

char arrow = '//Press Alt 26'; Console.WriteLine(arrow);