脚本宝典收集整理的这篇文章主要介绍了记Python中一个编码的错误,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in posITion 0: ordinal not in range(128)
一直不知道是什么原因,通过查阅一个资料,才知道,原来是编码问题。
字符串在进行unicode的时候,要使用什么编码格式进行转换呢?utf-8?gb2312?utf-16?这个时候就要根据 Sys.getdefaultencoding()
来确定了。而sys.getdefaultencoding()
是ascii
编码,在ascii字符表中不存在0xe5这种大于128的字符存在。所以当然会报错。
可以这样修改:
#coding:utf-8
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
而因为我是使用的make html,通过查找,发现是/usr/bin/sphinx-build
这个文件在捣鬼。所以我修改这个文件就好了。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
reload(sys) #新添加的
sys.setdefaultencoding("utf-8") #新添加的
From sphinx import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script.pyw|.exe)?$', '', sys.argv[0])
sys.exit(main())
这样就正常了。
以上是脚本宝典为你收集整理的记Python中一个编码的错误全部内容,希望文章能够帮你解决记Python中一个编码的错误所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。