首页 > 解决方案 > 如何将非 ASCII 字符输出到 CMD.exe 会话中?

问题描述

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

有没有办法输出向下箭头字符以使其显示在控制台中?

我必须使用的唯一工具是visual studio。下面是我的代码:

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

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

在此处输入图像描述

标签: c#cmdconsole-application

解决方案


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

更改您的代码如下:

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

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

推荐阅读