我试图用urllib2下载一个网页并保存到MySQL数据库。 这样的:python utf-8 HTML解码错误
result_text = result.read()
result_text = result_text.decode('utf-8')
但是我得到这个错误:
数据: 'utf-8' 编解码器不能解码字节均为0x88
现在,HTML meta标签规定,编码确实是utf-8。 香港专业教育学院设法解决这个问题这条线:
result_text = result_text.decode('utf-8','replace')
它取代了坏人的角色。但是,我不确定这不是说明下载的数据可能有问题,或者我删除了有价值的字符。 IU应该添加页面也包含JavaScript - 尽管这不应该是我相信的问题。
有谁能告诉我为什么会发生这种情况? 感谢
你确定页面上的所有字符都是utf-8吗?尽管标题说明,它可能是“一个谎言” – DonCallisto 2012-01-29 14:02:28
当你得到''utf8'编解码器不能解码字节0x88'错误时,它也应该告诉你有问题的字节的位置。如果该位置是'n',则在调用decode('utf-8')'之前添加一个print语句:'print(repr(result_text [n-20:n + 20]))',并发布结果在这里。 – unutbu 2012-01-29 14:02:36
因为您没有发布链接到源数据,我们无法给您一个正确的答案。 但是,源数据很可能具有错误的UTF-8编码,因此您无法做到这一点。 – 2012-01-29 14:36:34