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编码的,这两者可以相互转换。

posted @ 2018-04-10 11:08  in_the_way  阅读(110)  评论(0编辑  收藏  举报