处理UnicodeDecodeError: ‘XXX' codec can't decode bytes
原创
©著作权归作者所有:来自51CTO博客作者jack_cap的原创作品,请联系作者获取转载授权,否则将追究法律责任
错误信息:
UnicodeDecodeError: ‘XXX' codec can't decode bytes in position 2-5: illegal multibyte sequence
这是因为遇到了非法字符,例如:全角空格往往有多种不同的实现方式,比如\xa3\xa0,或者\xa4\x57,
这些字符,看起来都是全角空格,但它们并不是“合法”的全角空格
真正的全角空格是\xa1\xa1,因此在转码的过程中出现了异常。
而之前在处理新浪微博数据时,遇到了非法空格问题导致无法正确解析数据。
[解决办法]
#将获取的字符串strTxt做decode时,指明ignore,会忽略非法字符,
#当然对于gbk等编码,处理同样问题的方法是类似的
strTest = strTxt.decode('utf-8', 'ignore')
return strTest
[补充]
默认的参数就是strict,代表遇到非法字符时抛出异常;
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?号取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。
上一篇:mysqlbinlog 数据恢复
下一篇:python 列表操作
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Python报错 UnicodeDecodeError:‘gbk’ or ‘ascii’ codec can’t decode
文章目录open报错Workbook报错解决方案总结open报错with open('setting.txt', 'r') as f: str = f.read()报错:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa5 in position 11: illegal multibyte sequence修改open函数,添加encoding参数。with open('setting.txt', 'r', encoding='utf-8
python UnicodeDecode gbk ascii codec -
python编码错误:UnicodeDecodeError: 'utf8' codec can't decode
出报错。但是,
ico python 中文字符
















