python程序采用unicode编码,一个中文字符对应,python汉字的unicode编码
1.python2.7 ide今天写了一个脚本测试网页,调用HTMLTestRunner生成测试报告。有一个编码错误:
UnicodeDecodeError错误:“ascii”编解码器无法解码位置0处的字节0xe4:序号不在范围内(128)
原因是python的str默认是ascii编码,和unicode编码冲突,会报错这个标题。
解决方法(将以下代码行添加到代码中):
导入系统
重新加载(系统)
sys.setdefaultencoding(utf8 )
2.Python 3.6 UnicodeDecoderror错误:“UTF8”CodecCan”TDecodebyte0x B2在位置24137:无效的起始字节(字节类型字符串被解码为字符串)
一个可能的解决方案(添加忽略错误):decode(utf-8 , ignore )
3.Python3.6.1 open当打开一个Excel文件时,会出现:
CodeDecoderror: open (xxx.xsl )(默认读取模式为 r ,编码不能用utf8、gb2312或gbk编码)
解决方案:
改为以二进制模式读取:open(xxx.xsl , rb )
4.python3.6.1打开jpg图片调用请求上传时打开:
UnicodeEncodeError错误:“latin-1”编解码器无法对位置0-3中的字符进行编码:序号不在范围内(256)
原因是请求的自定义标题包含中文。
解决方法:不要用中文。或者用中文xxx.encode(utf8) -)对自定义头添加的请求参数进行转码——如果请求会话,则转码方式无效,或者不要使用中文。
ps:
当出现编码问题时,python默认的外观信息并没有告诉你错误的具体参数,只是告诉你错误的原因和错误的代码位置。有时候可能找不到原因(就像这个问题中,我一直以为请求参数读图后编码不正确,一直修改不了编码方式。最后屏蔽了自定义表头代码,才发现是自定义表头的中文造成的)。为了快速定位问题的具体错误参数,可以打印异常信息以便快速找到错误变量:
尝试:
除了BaseException作为e:
打印(REPR(E))-打印有错误的特定变量。
print(str(trace back . format _ exc())-打印错误原因代码行文件(类似于正常操作的异常信息)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。