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

发布于 2021-01-29 17:27:03

当我打开网址并阅读时,我无法识别它。但是,当我检查内容标头时,它说它被编码为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:无效的起始字节。

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

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

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    您应该先打开包装:

    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()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看