我试图从C#程序向Windows控制台窗口输出unicode字符U + 2717(BALLOT X),但没有成功。没有字体,输出编码或其他任何东西的组合似乎工作。我默认使用的字体(Consolas)可以正确显示此字符,因为它是我在Visual Studio中使用的字体,并且Visual Studio正确显示该字符。附近的角色U + 2713(CHECK MARK)显示正确,所以我认为这个角色有特定的东西阻止它正确显示。它可能是什么?
示例(非工作)代码:
System.Console.WriteLine("✗");
也不起作用(以同样的方式失败,即输出"?"):
System.Console.WriteLine("\u2717");
我尝试过设置各种输出编码:
System.Console.OutputEncoding = System.Text.Encoding.UTF32;
答案 0 :(得分:0)
。。如果我使用代码here列出支持fonts的字体,我会得到Meiryo,Meiryo UI,MS Gothic,MS Mincho,MS PGothic,MS PMincho,MS UI Gothic和Segoe UI Symbol。我相信正在发生的事情是Visual Studio正在回归MS Mincho,因为Consolas缺少必要的字形。 Word肯定会这样做 - 如果我在Word中键入I,我就无法将字体更改为Consolas。
解决方法:
安装字体。
使用以下说明将字体添加到可能的控制台字体列表中:Enable More Fonts for the Windows Command Prompt。
在控制台窗口中选择字体。