python程序采用unicode编码,一个中文字符对应,python汉字的unicode编码

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: