写工具时遇到如下报错:
明显是编码问题,python文件的开头加入了编码声明
# -*- coding: utf-8 -*-
但是通过
print(sys.getdefaultencoding())
打印信息显示编码并未改变。
解决方案:
在代码的最后一个 import 导入 Module 后 , 添加如下代码 :
import sys
reload(sys)
sys.setdefaultencoding('utf8')
特别注意 , 上述代码要添加在 导入模块 的最后一行后面 , 不要放在 import 等导入模块代码的前面 , 否则会报错 !
参考资料:https://blog.csdn.net/shulianghan/article/details/120650344
---------------------------------------更新分割线-------------------------------------
utf8编码读取部分文件也会UnicodeDecodeError,根本原因:有的文件编码不是utf8而是gbk-2312 亦或是其他编码方式,打开文件的编码方式和源文件的编码方式不一致,就有可能导致UnicodeDecodeError。