在win10+py3.5 跑代码报这个错误
搜索后 用 print('\u00bb') 测试发现报同样的错误
原来是print()函数自身有限制,不能完全打印所有的unicode字符。
加入代码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') # 改变标准输出的默认编码
再次运行发现中文乱码
修改编码方式后正常显示
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030') # 改变标准输出的默认编码
win10 打开Python shell,输入命令 sys.getdefaultencoding() 获取默认编码,修改:setdefaultencoding(‘utf-8’)
附上一些常用的和中文有关的编码的名称,分别赋值给encoding,就可以看到不同的效果了:
编码名称 | 用途 |
utf8 | 所有语言 |
gbk | 简体中文 |
gb2312 | 简体中文 |
gb18030 | 简体中文 |
big5 | 繁体中文 |
big5hkscs | 繁体中文 |
感谢:https://blog.youkuaiyun.com/jim7424994/article/details/22675759