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))
结果为:
这里检测出百度贴吧首页为GB2312编码,概率为0.99。这样基本确定这个页面的编码是GB2312了。