C语言Python语言打印 ascii 表 乱码的原因,出现问号,无法打印心形

最近突然发现竟然无法打印 ASCII 表:
打印 ascii 乱码
用 Python 也不行:
python 打印 ascii 乱码

原因:

print 是打印在终端的,而这个终端是电脑中的控制台,名字叫 cmd:
看属性:
窗口属性
当前代码页显示是中文 GBK 编码:
竟然默认是GBK编码
当前代码页是中文编码 936 GBK.

如何修改?

  1. 临时修改,直接在窗口运行命令:
    chcp 65001
    改变页面编码为 utf-8(65001)
  2. 永久修改:
    修改注册表,改掉这个属性即可(修改注册表前最好先备份,以免改错了,系统挂了)。

Win+R 输入 regedit 调出 注册表,路径如下:
HKEY_CURRENT_USER\Console%SystemRoot%_system32_cmd.exe
修改注册表
我修改为 utf-8 后依然无效,于是改成 437
修改完成:
修改为437试试
输出:
编码437的输出
至少有输出图案了。
pycharm 的控制台不知道编码从哪里来,不过我们可以从 cmd 去执行:
powershell
打开python脚本所在路径,执行命令:
437
因为数值较小的字符有些是控制字符,所以用 for 循环输出,有些字符会被覆盖或删除。
我们可以单独输出某一个:

for i in range(5,6):
    print(chr(i),end=',')

输出5对应的字符
顺便提一句:数字 7 是蜂鸣,打印的时候,电脑会相应地响一声。如果加上sleep,写一首歌也不是不行。

拓展:

十进制码值 对应编码名称
950 繁体中文
65001 UTF-8代码页
936 简体中文默认的GBK
437 MS-DOS 美国英语

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值