python 编码问题

中文iso8859-1编码转utf8编码

str.encode("gbk").decode('gbk').encode('utf-8')

原理:

utf8编码的文本可以用iso8859-1的编码表示,但是反过来不行。iso8859-1是单字节编码,而utf8是定长编码,从utf8转化成iso8859-1相当于是高精度转化成低精度,造成精度丢失,所以不可逆。根本原因是因为utf8中文,在iso8859-1没有匹配的位置。

而gbk是不定长编码,英文数字的字符编码规则跟iso8859-1是一样的,所以gbk是兼容iso8859-1编码的,这两者可以相互转换。

原文地址:https://www.cnblogs.com/shihaokiss/p/8777493.html