关于使用VS2017显示ASCII码扩展字符集的问题

【问题】:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

【代码】:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    char a = 176, b = 219;
    printf("%c%c%c%c%c\n", b, a, a, a, b);
    printf("%c%c%c%c%c\n", a, b, a, b, a);
    printf("%c%c%c%c%c\n", a, a, b, a, a);
    printf("%c%c%c%c%c\n", a, b, a, b, a);
    printf("%c%c%c%c%c\n", b, a, a, a, b);
    system("pause");
    return 0;
}

【想要实现的效果】:

【实际出现的效果】:

【原因】:

ASCII码表分为3部分:

第一部分:由00H到1FH共32个,一般用来通讯或作为控制之用。有些可以显示在屏幕上,有些则不能显示,但能看到其效果(如换行、退格)。

第二部分:是由20H到7FH共96个,这95个字符是用来表示阿拉伯数字、英文字母大小写和下划线、括号等符号,都可以显示在屏幕上。

第三部分:由80H到0FFH共128个字符,一般称为"扩充字符",这128个扩充字符是由IBM制定的,并非标准的ASCII码,这些字符是用来表示框线、音标和其它欧洲非英语系的字母。

显示乱码的主要原因文件信息的代码页不同,我们所使用的操作系统中文状态下的代码页,要显示扩展的ASCII码需要在437 OEM-美国这个下面显示,这样就可以显示出你所希望的。

查看我的控制台的代码页:

具体修改控制台的默认代码页步骤如下:

鼠标左击控制台标题栏 -》点击“属性”查看

如何修改?网上找了很多方法,都不行,我是通过修改注册表的方式来手动修的。

鼠标左击控制台标题栏 -》点击“默认值”,选择使用旧版本控制台后关闭项目重新打开,选择437(OEM-美国)。

设置后此时“属性”页面的代码页依然是“936”,这时需要重新设置注册表。

找到regedit

然后,按照下图找到CodePage,双击。选择十进制,将936修改为437,然后重新调试就可以了。

猜你喜欢

转载自blog.csdn.net/weixin_44165923/article/details/85567919