这是如此微不足道,这听起来很愚蠢,但请容忍我。
我曾经能够通过如下操作来绘制ASCII艺术笑脸similar to this post:
Console.Write((char)1);回到我在Windows XP/7上这样做的时候,默认情况下控制台不能渲染字符。我通过使用这个特殊的编码解决了这个编码问题:
Console.OutputEncoding = System.Text.Encoding.GetEncoding(1252);现在我在Windows10中尝试了一下,我得到了这个奇怪的问号字符,这让我想起了最初的编码问题:

Windows 10控制台中的某些更改是否会导致此问题?我怎么才能修复它?
发布于 2016-08-18 16:38:23
请注意,(char)1只能与原始设备制造商代码页437一起使用。这在DOS应用程序中工作得很好,但在Windows上,这种方法稍微有点棘手,特别是因为U+0001不代表笑脸。U+263A就是这样。所以正确的方法实际上是:
Console.WriteLine((char)0x263A);您可能必须将输出编码显式设置为Unicode或UTF-8以使其显示,否则字符将在此过程中经过几次字符集转换,具体取决于您的控制台窗口设置:
Console.OutputEncoding = Encoding.Unicode;发布于 2016-08-18 16:31:42
这对我在Windows 10上很有效:
public static void Main()
{
Console.OutputEncoding = System.Text.Encoding.Unicode;
Console.WriteLine("☺");
}发布于 2016-08-18 16:39:13
https://stackoverflow.com/questions/39012840
复制相似问题