绘制笑脸ASCII艺术

时间:2016-08-18 08:02:13

标签: c#

这太琐碎了,听起来很傻,但请耐心等待。

以前我可以通过以下方式绘制ASCII艺术笑脸[{3}}:

Console.Write((char)1);

当我在Windows XP / 7上执行此操作时,控制台默认情况下无法呈现该字符。我通过使用这种特殊编码解决了这个编码问题:

Console.OutputEncoding = System.Text.Encoding.GetEncoding(1252);

现在我在Windows 10中尝试这个,我得到这个奇怪的问号字符,这让人联想到原始的编码问题:

similar to this post

Windows 10控制台中是否有更改导致此问题?我该如何解决?

3 个答案:

答案 0 :(得分:2)

请注意,(char)1只能 使用OEM代码页437.这在DOS应用程序中运行良好,但在Windows上这种方法稍微复杂一些,特别是因为U + 0001执行代表笑脸。 U + 263A。所以正确的方法实际上是:

Console.WriteLine((char)0x263A);

您可能必须将输出编码显式设置为Unicode或UTF-8才能显示,否则角色会沿途经过一些字符集翻译,具体取决于您的控制台窗口设置:

Console.OutputEncoding = Encoding.Unicode;

答案 1 :(得分:1)

这适用于Windows 10:

public static void Main()
{
    Console.OutputEncoding = System.Text.Encoding.Unicode;
    Console.WriteLine("☺");
}

答案 2 :(得分:1)

尝试使用Unicode字符

char c = '\u263a';
Console.WriteLine (c.ToString());

Working Example Here

相关问题