对于python.x来说,安装时系统默认的编码方式为ascii。因此,若编码中出现非ascii编码(如汉字),运行时就会报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)。
此时就得注意了,一定是程序的某个部分编码出了问题,最大嫌疑就是汉字。此时不要慌,按我说的做 ^_^:
在你的模块中加入下面几行代码~~~
import sys
reload(sys)
sys.setdefaultencoding('utf8')
好了,问题解决!~
答疑时间:
一般的 sys.setdefaultencoding('utf8') 也就可以了,但你这么直接,系统可能不会接受你:AttributeError: 'module' object has no attribute 'setdefaultencoding'
;
所以,最好事先 reload(sys),重新加载一下这一模块,保证万无一失。
对于python3.x来说,官方已经将默认编码改为utf8,不再存在此类问题。
行万里路,不忘初心!