当我打开网址并阅读它时,我无法识别它。但是,当我检查内容标题时,它表示它被编码为utf-8。因此我尝试将其转换为unicode并且它抱怨UnicodeDecodeError:'ascii'编解码器无法使用unicode()解码位置1中的字节0x8b:序号不在范围(128)中。
.encode(“utf-8”)产生
UnicodeDecodeError:'ascii'编解码器无法解码位置1中的字节0x8b:序数不在范围内(128)
.decode(“utf-8”)制作完成 UnicodeDecodeError:'utf8'编解码器无法解码位置1的字节0x8b:无效的起始字节。
我已经尝试了所有我能想到的东西(我在编码上并不擅长)
如果我能让这个工作,我会很高兴。感谢。
答案 0 :(得分:7)
这是一个常见的错误。服务器发送gzip压缩流。
你应该首先解压缩它:
response = opener.open(self.__url, data)
if response.info().get('Content-Encoding') == 'gzip':
buf = StringIO.StringIO( response.read())
gzip_f = gzip.GzipFile(fileobj=buf)
content = gzip_f.read()
else:
content = response.read()
答案 1 :(得分:0)
标题可能有误。查看chardet。
编辑:更多地考虑它 - 我的钱是关于内容被gzipped。我相信一些Python的各种URL开放模块/类/等将会ungzip,而其他人则不会。