html = response.read().decode('utf-8')这个语句为什么会报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 10: invalid start byte
时间: 2023-10-09 19:05:35 浏览: 65
Encode-Decode-ANSI-UTF-8.rar
这个错误通常是因为网页返回的内容不是以utf-8编码的格式进行编码的,而是其他编码格式,如gbk、gb2312等。因此,在使用`decode('utf-8')`进行解码时会报错。
解决方法是先尝试使用正确的编码格式解码,如果仍然出现解码错误,则可以使用Python内置的`chardet`库进行自动识别编码格式。具体代码如下:
```python
import chardet
html = response.read()
encoding = chardet.detect(html)['encoding']
html = html.decode(encoding)
```
这样,就可以避免UnicodeDecodeError错误了。
阅读全文