公司有一个预警的任务是用python(2.6)写的,最近执行报错:
value = unicode(value, self.encoding)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 2: invalid start byte
当按照网上说的都解决不了的时候,我在想是不是代码写的有问题。虽然它之前是运行正常的。
我确定了python运行环境编码是uft8,文件是utf8,和python有关设置编码的都设置为utf8了。还是报错。我找到这段报错的代码行,发现是写excel单元格,如果是中文就会报错。那么这个写的数据是从哪来的,我查了下,是从数据库查询出来的。检查了下数据库连接代码。发现数据库连接没有设置编码:
conn = MySQLdb.connect(host='xx',user='xx',passwd='xx',db='xx');
改为:
conn = MySQLdb.connect(host='xx',user='xx',passwd='xx',db='xx',charset="utf8");
问题解决了。没有报错了。
总结:
有时候出现错误还是要自己好好想想,这种编码错误问题,最好是确定所有地方编码都统一了。
分享到:
相关推荐
非常好用的IDE,对于自动化测试robot framework的编写有很大的作用。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcc in position 0: invalid continuation byte 这个是编解码的问题,解决方法是把版本降到1.2.12就可以了,虽然records里面的中文字段还需要再次解码,但...
UnicodeDecodeError: ‘utf8' codec can't decode byte 0x。 如果对于ascii、unicode和utf-8还不了解的小伙伴,可以看之前的这篇文章关于字符串和编码 那么必须对下面这三个概念有所了解: ascii只能表示
通用 1.数据集文件名称为英文: import pandas as pd app=pd.read_csv(r'C:\Users\25466\Desktop\test1.csv') #1 添加绝对路径地址 ...#报错: UnicodeDecodeError: 'gbk' codec can't decode byte 0x
然而,在实际使用过程中,可能会遇到一些报错情况,比如`TypeError: write() argument must be str, not bytes`和`UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 0: illegal multibyte ...
在解码时,如果遇到编码错误,比如当字节序列不符合UTF-8规则时,Python会抛出一个异常,如'utf-8 codec can't decode byte 0x80 in position 0: invalid start byte'。 因此,了解bytes和str的区别有助于正确处理...