美文网首页
python2 与 python3 字符编码问题

python2 与 python3 字符编码问题

作者: 如果仲有听日 | 来源:发表于2020-03-05 10:11 被阅读0次

    总所周知,程序中所有的字符串语言都将转化为二进制存储,那么一定会遇到编码的问题,不同的语言有不同的编码。

    每个语种都有自己的编码格式,例如英语用ASCII码,但是大多数国家文字很多超过了ASCII码的编码范围,比如中文有gbk编码格式等等。

    为了将所有编码格式统一成一个全球编码标准,就产生了unicode编码。

    python2中 将unicode和其他编码进行了区分,也就是说python2中的字符串要么是u'中国'这样的unicode编码,要么是指定编码格式的str类型

    python2

    str: 'utf-8' 'gbk'

    unicode

    这样就会出现一种常见问题,例如:

    当2个编码方式不同的字符串合并的时候,"中国" + "zg",python2在处理的过程中分别将这2个字符串转换为unicode进行统一,但是python并不知道原来的"中国"是以utf-8还是gbk编码,那么都会按照ASCII码转成unicode,但"ASCII"码中没有“中国”这2个字符的编码,因此会遇到一个错误:ASCII cannot decode \xxx\xxx

    要解决这个问题,就是在"中国"前加个u,让它成为unicode编码格式

    python3将python2的这个问题解决了,统一都用unicode编码

    相关文章

      网友评论

          本文标题:python2 与 python3 字符编码问题

          本文链接:https://www.haomeiwen.com/subject/mnltrhtx.html