由于工作需要,近期在写python。在测试py文件时,发现了一个问题: 在cmd窗口打印中文会报错。使用try catch也捕获不到异常,十分烦恼!
print('中文')
网上搜索了各类解决方案,有在代码文件头加编码格式的:
# -*- coding: utf-8 -*-
有修改stdout编码格式的:
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, 'utf-8')
有说cmd的默认代码也是936,需要切换到65001的:
chcp 65001
以上方法统统测试了一遍,全部都无效。最后万般无奈之下,恢复了cmd的默认代码页,也就是936,竟然奇迹般的可以打印中文。真的是“踏破铁鞋无觅处,那人却在灯火阑珊处”啊。
在此记录一下,避免自己再次采坑。也愿做那“星星之火”,帮助仍在探索中的coding们。