• python学习DAY7(编码转码)


    Unicode默认中英文为2个字节,16位
    Unicode相当于编码的转码中介
    ASCII不可存中文字符
    utf-8(可变长):英文字符按照ASCII码
                  中文字符三个字节
    #打印系统默认编码
    import sys
    print(sys.getdefaultencoding())
    -------------------------------------------
    python2中:
    #若UTF-8转为GBK 默认编码为unicode
    则需要进行解码操作,先解成UNICODE(可显示中文),再编码为GBK
    s="你好"
    s_to_unicode=s.decode("utf-8")
    s_to_GBK =s_to_unicode.encode("GBK")
    ----------
    也可以这种写法
    s=u"你好"
    s_to_GBK=s.encode("gbk")
    #unicode 和 uft-8之间都可以打印显示
    --------------------------------------------
    python3中:默认是utf-8,声明为utf-8
    s="你好"
    s_to_gbk=(s.encode("gbk"))      #utf-8转为gbk,注意,必须要用变量存储新转化,否则原s不变
    s2=s.encode()                   #默认编码utf-8
    print(s_to_gbk)
    print(s2)
    s_to_utf8=s_to_gbk.decode("gbk").encode("utf-8")   #gbk转为utf-8:先解码为unicode,再编码为utf-8
    print(s_to_utf8)
    
    #总之:转码进行需要先进行decode成unicode再encode成所要的编码格式
     注意!文件编码为utf-8,则需要声明为utf-8格式,其他编码做法类似
     文件编码与程序运行所用的编码不同,程序运行所用的编码是默认的unicode,如上面的s仍然为unicode
     所以开始就只有encode,因为程序已经是unicode了,不需要再解码成unicode
     解码需要写上需要解码的原编码格式
    #总之,可以把程序的编译认为是unicode编码

  • 相关阅读:
    【带权并查集】How Many Answers Are Wrong HDU
    【带权并查集+离散化】Parity game POJ
    【并查集】Supermarket POJ
    【并查集】P3958 奶酪
    【并查集-判环】Is It A Tree? POJ
    【最短路/线性差分约束】Layout POJ
    【最短路-负环】Extended Traffic LightOJ
    【最短路】Subway POJ
    【最短路-判负环 Floyd】Wormholes POJ
    [JZOJ]1293.气象牛[区间DP]
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11108009.html
Copyright © 2020-2023  润新知