• 字符编码与解码


    # 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

  • 相关阅读:
    机器学习学习笔记之二:决策树
    机器学习学习笔记之一:K最近邻算法(KNN)
    Shell脚本编程中的几个问题
    Linux服务器配置git服务
    Ubuntu下安装IDA pro
    网络扫描(二)
    网络扫描(一)
    Docker学习过程中遇到的问题及解决方法
    CentOS7中升级Docker版本
    解决CentOS无法解析域名的问题
  • 原文地址:https://www.cnblogs.com/hy007x/p/7727583.html
Copyright © 2020-2023  润新知