Python3 UnicodeEncodeError 问题解决

用python3时,直接print('中文')出现下面的错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

对于上述问题,试了很多网上流传的各种版本解决方案,如:

import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )

但由于python3已经丢弃了setdefaultencoding("utf-8"),所以此路不通。下面介绍两种方法解决这个问题:

方法一:

加上下列代码,让python在标准输出的时候按utf-8编码输出

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

方法二(推荐使用):

把print('中文') 改为 print(str('中文')),编译一下,中文友好地正常输出


阅读更多
换一批

没有更多推荐了,返回首页