zoukankan      html  css  js  c++  java
  • 字符编码与解码

    # ascii码:英文字母、数字、特殊字符
    # 扩展ascii码:ascii码的扩展,增加了拉丁文
    # GB2312:对ascii的中文扩展。简体中文的字符集编码。包含7000多汉字
    # GB18030和GBK:GBK是对GB2312的扩展,包括了GB2312所有内容,增加近2万汉字和符号
    # unicode编码:万国编码,国际组织制定的可以容纳世界上所有文字和符号的字符编码方案
    # UTF-8:Unicode的扩展,可变长度字符,英文用一个字节,汉字用两个字节,比unicode节省空间。推荐的编码

    # 获取系统默认编码
    import sys
    print("默认字符集:",sys.getdefaultencoding())

    #由于已经是utf8,所以不用解码就可转换成其它编码类型。unicode与utf8之间不用转换
    #各个编码的互相转换都要先转换成unicode(utf-8),然后转换成想要的编码
    #编码只转换汉字和中文标点,字母数字英文标点不转换
    #编码是将明文或utf8转成其它类型
    #解码是将非utf8转成utf8

    str = '学习python3.5'

    #对变量str编码成GBK
    str_gbk = str.encode('gbk')
    print('GBK:',str_gbk)

    #对GBK类型——》解码成明文——》编码成GB2312
    #所有的decode都会解码成unicode类型
    str_gb2312 = str_gbk.decode('gbk').encode('gb2312')
    print('GB2312:',str_gb2312)

    #对GB2312类型——》解码成明文——》编码成UTF8
    str_utf8 = str_gb2312.decode('gb2312').encode('utf8')
    print('UTF-8:',str_utf8)

    #x表示后面是十六进制, xe4xb8xad即是二进制的 11100100 10111000 10101101
    str_gb2312 = str_utf8.decode('utf8').encode('gb2312')
    print("又转回gb2312",str_gb2312)

    str_utf8 = str_gb2312.decode('gb2312').encode('utf8')
    print("现在是utf8:",str_utf8)

    #在linux中编写python脚本时,为支持中文,应在首行添加:
    # #!/usr/bin/env python
    # #-*- coding:gbk -*- 将文件编码声明成gbk(但变量默认还是utf8)
    # #! -*- coding:utf-8 -*- 将文件编码声明成utf8


    #或者:
    # #!/usr/bin/env python
    # # coding=utf-8

  • 相关阅读:
    CodeForces 604D 【离散数学 置换群】
    CodeForces 604C 【思维水题】`
    CodeForces 602E【概率DP】【树状数组优化】
    CodeForces 602D 【单调队列】【简单数学】
    HDU 3535 【背包】
    CodeForces 593D【树链剖分】
    HYSBZ 1036 【树链剖分】
    POJ 2352 【树状数组】
    POJ 2182【树状数组】
    机器学习实战笔记-2-7分类机器学习形象化总结
  • 原文地址:https://www.cnblogs.com/hy007x/p/7727583.html
Copyright © 2011-2022 走看看