python字符编码与转码

发布时间:2019-07-15 10:45:51编辑:auto阅读(1551)

    python 2.x 字符编码与转码


    打印系统默认编码格式

    import sys
    print(sys.getdefaultencoding())


    UTF-8 转 gbk

    方式:utf-8--转成--unicode--转成--gbk

    a = "你好"
    print a
    utf8_to_unicode = a.decode("utf-8")                 #utf-8转unicode
    print utf8_to_unicode
    unicode_to_gbk = utf8_to_unicode.encode("gbk")      #unicode转utf-8
    print unicode_to_gbk

    gbk 转UTF-8

    方式:gbk--转成--unicode--转成--utf-8

    gbk_to_unicode = unicode_to_gbk.decode("gbk")       #gbk转unicode
    print gbk_to_unicode
    unicode_to_utf8 = gbk_to_unicode.encode("utf-8")    #unicode转uft-8
    print unicode_to_utf8



    总结:

        1.python2.X 默认编码是ascii ;支持中文需要加“ #-*- coding:utf-8 ”;

        2.gbk、utf-8之间的转码必须先转码成unicode ;



    python 3.x 字符编码与转码


    字符编码与转码

    UTF-8 可变长编码格式

    python3.x 在转码的时候,同时把字符变成一个bytes类型;例如:b'\xc4\xe3\xba\xc3' ;

    python3.X 默认的编码是unicode 支持中文;


    打印系统默认编码格式

    import sys
    print(sys.getdefaultencoding())


    utf-8 转 gbk

    由于python3.0 默认unicode 支持中文,所以输入中文,可以直接转gbk ;

    a = "你好"
    print(a)
    unicode_to_gbk = a.encode("gbk")    #unicode 转 gbk
    print(unicode_to_gbk)


    utf-8 转 gbk      

    这里编码转化顺序:unicode--转成--utf-8--转成--unicode--转成--gbk;和上边一样的结果。

    a = "你好"
    print(a)
    moren_to_utf8 = a.encode("utf-8")                   
    #等于moren_to_utf8 = a.encode()   因为系统编码是utf-8
    print(type(moren_to_utf8.decode("utf-8")))          
    #utf-8 格式 decode成unicode 就成了一个字符串;
    utf8_to_unicdoe = moren_to_utf8.decode("utf-8")
    print(utf8_to_unicdoe)
    unicode_to_gbk = utf8_to_unicdoe.encode("gbk")
    print(unicode_to_gbk)



    gbk 转 utf-8

    gbk_to_unicode = unicode_to_gbk.decode("gbk")       #gbk 转 unicode
    print(gbk_to_unicode)
    unicode_to_utf8 = gbk_to_unicode.encode("utf-8")    #unicode 转 utf-8
    print(unicode_to_utf8)



    总结:

        1.python3.x 默认编码是unicode,支持中文;

        2.python3.x 在转码的时候,同时把字符变成一个bytes类型;例如:b'\xc4\xe3\xba\xc3' ;

        3.python3.x 转码成了bytes类型之后,想显示成中文decode成unicode 就成了一个字符串;


关键字