错误
unicodeencodeerror ‘ascii’ codec can’t encode characters in position xx
原因
默认编码是ASCII,会把其他编码方式依然按ASCII编码来解析,然后这个编码在ASCII里面不存在,然后就报错了,所以更改编码方式即可~
解决方案
在config.py中加入
|
|
第4行sys.setdefaultencoding('utf-8')
是设置字符串默认编码方式
那前面的reload(sys)
是做什么的,明明第一行已经import sys
了呢
根据python2的官方文档和stackoverflow上的回答
在python解释环境初始化的时候,会自动加载site.py
,site.py的代码https://github.com/python/cpython/blob/2.7/Lib/site.py
在main()
函数第529行处调用了setencoding()
,将编码设置为ascii
后,在第536和537行,将setdefaultencoding
从sys模块中删除了。
所以官方文档说
Once used by the
site
module, it is removed from thesys
module’s namespace.
那么,窝们要再想用setdefaultencoding
,就需要重新载入sys模块,也就是reload(sys)