首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制笑脸ASCII艺术

绘制笑脸ASCII艺术
EN

Stack Overflow用户
提问于 2016-08-18 16:02:13
回答 3查看 1.4K关注 0票数 2

这是如此微不足道,这听起来很愚蠢,但请容忍我。

我曾经能够通过如下操作来绘制ASCII艺术笑脸similar to this post

代码语言:javascript
复制
Console.Write((char)1);

回到我在Windows XP/7上这样做的时候,默认情况下控制台不能渲染字符。我通过使用这个特殊的编码解决了这个编码问题:

代码语言:javascript
复制
Console.OutputEncoding = System.Text.Encoding.GetEncoding(1252);

现在我在Windows10中尝试了一下,我得到了这个奇怪的问号字符,这让我想起了最初的编码问题:

Windows 10控制台中的某些更改是否会导致此问题?我怎么才能修复它?

EN

回答 3

Stack Overflow用户

发布于 2016-08-18 16:38:23

请注意,(char)1只能与原始设备制造商代码页437一起使用。这在DOS应用程序中工作得很好,但在Windows上,这种方法稍微有点棘手,特别是因为U+0001不代表笑脸。U+263A就是这样。所以正确的方法实际上是:

代码语言:javascript
复制
Console.WriteLine((char)0x263A);

您可能必须将输出编码显式设置为Unicode或UTF-8以使其显示,否则字符将在此过程中经过几次字符集转换,具体取决于您的控制台窗口设置:

代码语言:javascript
复制
Console.OutputEncoding = Encoding.Unicode;
票数 2
EN

Stack Overflow用户

发布于 2016-08-18 16:31:42

这对我在Windows 10上很有效:

代码语言:javascript
复制
public static void Main()
{
    Console.OutputEncoding = System.Text.Encoding.Unicode;
    Console.WriteLine("☺");
}
票数 1
EN

Stack Overflow用户

发布于 2016-08-18 16:39:13

尝试使用Unicode字符

代码语言:javascript
复制
char c = '\u263a';
Console.WriteLine (c.ToString());

Working Example Here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39012840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档