解决python中因为字符串编码导致的错误

python编程实例:

1. 将抓取的网站数据,保存到excel表格中,在sheet.write()函数时,报错如下:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128) 

百度上一般的解决方法如下:
import sys
reload(sys)

sys.setdefaultencoding('utf-8')

---上述方法只适用于保存的编码格式为utf-8的方式,如果需求其他的编码方式,一般上述方法都不能解决

2. 小编经过长时间的掉入坑中,总结一套方法:

   1. 出现上述错误时,首先使用chardet库中的detect方法,获取当前字符串的编码格式'format'

   2. 针对获取到的编码格式进行解码,即str.decode('format')

   3. 如果第二种方法仍然不能解决,尝试着将其进行编码,即str.decode('format').encode('format1'),其中format1的种类不多,比如utf-8, ascii,还有gbk,gb2312等不多的几种,一般都可以搞定



你可能感兴趣的:(python)