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]