【问题标题】:what is ASCII code for right filled arrow " ►"右填充箭头“►”的ASCII码是什么
【发布时间】:2020-01-09 07:12:42
【问题描述】:

我正在尝试在 C# 中打印右填充箭头 ► 这是我尝试过的

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

但它显示输出为?(问号) 我也经历了this 的问题,但它似乎不起作用。 你能帮我用正确的 ASCII 码来显示正确的输出吗?

【问题讨论】:

  • 控制台使用另一个代码页而不是 Windows 文本框。只需按 Win+R 并在此处键入“charmap”即可在窗口中获得字符表。
  • 不是 ASCII。它是 unicode 代码点 U+25BA。所以"\u25ba" 会起作用。
  • 不在控制台窗口中,对吧?
  • @Grisgram 嗯,这取决于控制台的编码...
  • @Sweeper 取决于控制台的字体

标签: c# char ascii


【解决方案1】:

在打印前更改控制台输出编码:

Console.OutputEncoding = Encoding.Unicode;
Console.WriteLine((char)9658);
// or just
//Console.WriteLine('►');

【讨论】:

    【解决方案2】:

    您可以轻松地将char 转换为int 从而获得其代码

      char arrow = '►'; // Copy + Paste from the question
    
      Console.Write($"{arrow} : {(int)arrow} : \\u{(int)arrow:X4}";);
    

    结果:

      ► : 9658 : \u25BA
    

    这就是为什么你可以放

      char arrow = '\u25BA';
    

    【讨论】:

      【解决方案3】:

      黑色实心箭头不包含在 ascii 字符集中。您需要使用 unicode。

      在你的例子中:

      string myString = "\u25BA";
      Console.WriteLine(myString);
      

      您还需要注意,您使用的字体可以显示特定的 unicode 字符。据我所知,默认的控制台字体不支持它。

      【讨论】: