个人随笔
目录
Python中解码decode()与编码encode()与错误处理UnicodeDecodeError: 'gbk' codec can't decode byte 0x81
2019-07-18 23:40:26

我们再用python来爬取html的时候,有时候html会是gbk编码,此时如果我们用如下语句:

  1. html = html.decode("gbk")

可能会报错:

  1. UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position 5993: illegal multibyte sequence

解决办法:

Python bytes decode() 方法语法:

  1. str.decode([encoding="utf-8"][,errors="strict"])

参数

  • encoding — 可选参数,要使用的编码,默认编码为 ‘utf-8’。
  • errors — 可选参数,设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。

所以这里带上ignore即可

  1. html = html.decode("gbk",errors="ignore")

如果print输出也报gbk错误,我们可以直接如下进行输出即可:

  1. print(str(infos[0]).encode('gbk', 'ignore').decode('gbk'))
 780

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2