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

  • 相关阅读:
    手把手教您玩转信用卡 如何“以卡养卡”合法“套现”
    267家已获第三方许可机构名单查询
    C#生成图片验证码
    File I/O
    文件上传代码
    集合框架
    接口
    多态
    封装
    jsp做成mvc模式的代码
  • 原文地址:https://www.cnblogs.com/hy007x/p/7727583.html
Copyright © 2011-2022 走看看