7.python3编码问题

1.python 的文本数据和二进制数据

  • python的文本数据为String(默认编码utf-8),二进制数据为bytes。
    字符串由字符组成,字符则是与任何特定二进制表示无关的抽象实体。
    str可以编码成字节包,而bytes可以解码成字符串。
方法 含义
str.encode('gbk') 将默认的utf-8编码成gbk编编码,类型转为bytes
bytes.decode('gbk') 将gbk的编码转化为默认的utf-8编码,类型转为string

如图:

转换图
  • 注:有时候编码无法相互转化,于是就有了errors参数,常用参数 'ignore'(忽略错误)
# 忽略转换过程中无法转换的字符
str.encode('gbk','ignore')

2.检测所读数据是什么编码

  • 使用chardet第三方库。

2.1 安装

  • 使用pip直接安装。
pipinstall chardet

2.2 使用

  • 使用chardet.detect(字节包)查看数据编码概率。
import chardet
import urllib.request
code=urllib.request.urlopen("http://tieba.baidu.com/").read()
print(chardet.detect(code))

结果为:


result

这里检测出百度贴吧首页为GB2312编码,概率为0.99。这样基本确定这个页面的编码是GB2312了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容