1. Encode
将str类型编码成bytes类型:
>>>strs = '中文English'
>>>strs.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87English'
b'\xd6\xd0\xce\xc4English'
b'\xe4\xb8\xad\xe6\x96\x87English'
bytes()函数同str.encode()。
2. Decode
将bytes类型(如utf-8编码)解码成str类型:
'中文ENGLISH'
3. 解码错误情况
如果将utf-8编码的bytes类型解码成gb2312时出错,可通过第三方库
chardet
函数
detect
检测出编码方式。
from charted import detect
wd = '中华人民共和国'
wt = ws.encode('utf-8')
print(wt)
detect(wt)
将返回结果:
b'\xe4\xb8\xad\xe5\x8d\x8e\xe4\xba\xba\xe6\xb0\x91\xe5\x85\xb1\xe5\x92\x8c\xe5\x9b\xbd'
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}
encoding的值为其检测出的编码类型,确认是该编码的置信度为confidence的值,此处将中文字符编码成utf-8后未能识别出语言。
下面,再将wd编码成gb2312,
wt1 = ws.encode('gb2312')
detect(wt1)
返回结果:
{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
识别出语言为中文。