Python转码问题的解决方法:UnicodeDecodeError:‘gbk' codec can't decode bytes in position

在开发过程中遇到了错误:UnicodeDecodeError: ‘gbk' codec can't decode bytes in position 678-679...
这是因为遇到了非法字符,

解决办法:
str.decode('gbk', ‘ignore').encode('utf-8′)
因为decode的函数原型是decode([encoding], [errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;
如果设置为ignore,则会忽略非法字符;
如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。

posted @ 2015-09-06 10:24  摩罗  阅读(983)  评论(0编辑  收藏  举报