python遇到的UnicodeDecodeError:编码错误处理:
对UnicodeDecodeError:
编码错误的python配置文件处理:
使用python的时候经常会遇见各种UnicodeDecodeError
报错,但是去百度的时候,大佬们动不动就是说py不同版本默认编码不同导致错误,然后让再写的脚本里添加注明编码类型的语句。但是python并不是只写脚本就能用的,python是有很多库的,有的时候想要做什么事情必须要安装具有相应功能的python库,这个时候遇到编码错误很显然不是可以手动改脚本什么解决的,毕竟这是命令而非脚本文件。这个时候要用的方法很明显是要去改python的配置文件,当然喜欢直接手动实现命令的大佬请忽略这篇记录,只是萌新觉得这样会方便一点,于是把最常用到的方法总结了一下:
另外再说一下萌新觉得有用的小经验:编码错误的分类主要和in postition
后面的数字编号有关,至于前面的那个decode byte 0xXX
没太大关系,数字编号一样的解决方案基本一样
9号错误: UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xcd in position 9: invalid continuation byte:
Python 2.7.15\Lib\site-packages
目录下面新建一个文件名为sitecustomize.py
在里面写上
import sys
sys.setdefaultencoding('gbk')
7号错误: UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xcf in position 7: ordinal not in range(128):
修改mimetypes.py
文件,路径位于python的安装路径下的Lib\mimetypes.py
文件。在import
下添加如下几行,将编码设置为‘gbk’:
if sys.getdefaultencoding() != 'gbk':
reload(sys)
sys.setdefaultencoding('gbk')
也有大佬是在python27/Lib
文件夹下的mimetypes.py
文件,在253行左右,在default_encoding=sys.getdefaultencoding()
前加三行:
If sys.setdefaultencoding()!='gbk':
reload(sys)
sys.setdefaultencoding('gbk')
default_encoding=sys.getdefaultencoding()
或是在manage.py
文件上,加上以下代码:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
通过脚本内添加命令方式解决:
6号错误: UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 6: ordinal not in range(128):
在脚本中开头添加以下代码即可
import sys
reload(sys)
sys.setdefaultencoding('utf8')