小编典典

urllib2打开器提供了错误的字符集

python

当我打开网址并阅读时,我无法识别它。但是,当我检查内容标头时,它说它被编码为utf-8。因此,我尝试将其转换为unicode,并抱怨UnicodeDecodeError:’ascii’编解码器无法使用unicode()解码位置1处的字节0x8b:序数不在range(128)中。

.encode(“ utf-8”)产生UnicodeDecodeError:’ascii’编解码器无法解码位置1的字节0x8b:序数不在范围内(128)

.decode(“ utf-8”)产生UnicodeDecodeError:’utf8’编解码器无法解码位置1的字节0x8b:无效的起始字节。

我已经尽力想出了一切(我不太擅长编码)

如果我能解决这个问题,我将很高兴。谢谢。


阅读 123

收藏
2020-12-20

共1个答案

小编典典

这是一个常见的错误。服务器发送压缩的流。

您应该先打开包装:

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()
2020-12-20