【发布时间】:2012-02-25 16:07:38
【问题描述】:
当我打开网址并阅读它时,我无法识别它。但是当我检查内容标头时,它说它被编码为 utf-8。所以我尝试将它转换为 unicode,它抱怨 UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 1: ordinal not in range(128) using unicode()。
.encode("utf-8") 产生
UnicodeDecodeError:“ascii”编解码器无法解码位置 1 中的字节 0x8b:序数不在范围内 (128)
.decode("utf-8") 产生 UnicodeDecodeError: 'utf8' codec can't decode byte 0x8b in position 1: invalid start byte.
我已经尝试了所有我能想到的(我不擅长编码)
如果我能让它工作,我会很高兴。谢谢。
【问题讨论】:
-
HTTP 标头可能是错误的 - 在 HTML 本身中查找指定 HTML 的元标记。可能是 Latin-1 (
.decode('latin-1'))。 -
试过了。而且我很确定它是 utf-8,因为 chrome sais 所以当我访问该网站时。
-
如果你的流真的是 utf8 编码的,
.decode("utf-8")可以工作。所以,你一定是误会了什么。您可以发布给您带来麻烦的网址(或:网址)吗? -
您能否创建一个minimal complete example 来显示问题,例如print-page-info.py
标签: python utf-8 character-encoding urllib2