Windows下运行成功的Python程序,在Linux下运行报错:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0: ordinal not in range(128)
问题原因:
Linux下Python默认编码是ascii,当代码中存在utf-8的字符,就会导致报错。这里的编码和Python文件头部的 -*-encoding:utf8-*-是两回事,可以共存。
解决方法:设置脚本默认编码为utf-8
在Python脚本头部,添加代码:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
再次运行,成功!