Skip to content

python中编码(encode)与解码(decode)

首先需要搞清楚,python中的字符串默认编码为unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

encode的作用:将unicode编码转化为其它编码的字符串。

decode的作用:将其他编码的字符串转换成unicode编码。

import chardet       

a = '北京'        #python默认编码是unicode

b = a.encode('utf-8')      #将字符串转化为utf-8编码
print(b)
print(chardet.detect(b))  #检验字符编码,不能是unicode
c = b.decode('utf-8')     #由从utf-8解码为unicode编码
print(c)
b'\xe5\x8c\x97\xe4\xba\xac'
{'encoding': 'utf-8', 'confidence': 0.7525, 'language': ''}
北京

a的编码必需与a.decode('utf8')指定的编码一致,不然会抛出解码异常信息,可以通过a.decode("gbk", "ignore")或s.decode("gbk", "replace")来解决。

(chardet库查看编码)[https://www.jb51.net/article/211203.htm]