• python的字符编码


    计算机中的所有数据都是二进制数

    python2中默认的是编码格式是ASCCI码,python3中默认的编码格式是UTF-8

    可以通过以下代码查看当前的编码格式:

    import sys

    print(sys.getdefaultencoding())#输出当前的编码格式

    字符编码转换
    很多其它国家都搞出自己的编码标准,彼此间却相互不支持。这就带来了很多问题。于是,国际标谁化组织为了统一编码:提出了标准编码准则:UNICODE 。
    UNICODE是用两个字节来表示为一个字符,它总共可以组合出65535不同的字符,这足以覆盖世界上所有符号(包括甲骨文)

    UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,它可以使用1~4个字节表示一个符号,根据
    不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,所以是兼容ASCII编码的。

    这样显著的好处是,虽然在我们内存中的数据都是unicode,但当数据要保存到磁盘或者用于网络传输时,直接使用unicode就远不如utf8省空间啦!
    这也是为什么utf8是我们的推荐编码方式。

    Unicode与utf8的关系:
    一言以蔽之:Unicode是内存编码表示方案(是规范),而UTF是如何保存和传输Unicode的方案(是实现)这也是UTF与Unicode的区别。

    UTF-8与GBK之间的转换:

    Unicode(encode)--->UTF-8
    UTF-8(decode)-->Unicode

    Unicode(encode)-->GBK
    GBK(decode)-->Unicode

    编码格式相互转换时需要在decode()和encode里面明确说明当前的编码格式以及要转换成的格式

    python3中默认的是 utf-8


    GBK转换成UTF-8格式流程:
    1、首先通过解码【decode】转换成Unicode编码
    2、然后通过编码【encode】转换成UTF-8
    GBK(decode)-->Unicode(encode)-->UTF-8
    GBK.decode("gbk").encode("utf-8")
    decode()里面的参数是现在的编码格式,encode()里面的参数是要转换成的编码格式

    UTF-8转换成GBK的格式流程:
    1、首先通过解码【decode】转换成Unicode编码
    2、然后通过编码【encode】转换成UTF-8
    UTF-8(decode)-->Unicode(encode)-->GBK
    UTF-8.decode("utf-8").encode("gbk")


    注意:在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

    import sys
    print(sys.getdefaultencoding())
    msg = "我爱你中国"
    #utf-8准换gbk 其实通过一次uft-8编码成gbk格式
    s_to_gbk=msg.encode("gbk")#默认就是utf-8,不用再decode,喜大普奔
    print(s_to_gbk)
    #gbk转换utf-8  gbk先解码成unicode格式再编码成uft-8
    s_to_utf8=s_to_gbk.decode("gbk").encode("utf-8")
    print(s_to_utf8)
    #中文输出 utf-8再解码输出
    utf_print=msg.encode("gb2312").decode("gb2312").encode("utf-8").decode("utf-8")
    print(utf_print)
    View Code

    代码的输出结果

  • 相关阅读:
    深刻理解Docker镜像大小
    UVA 12657 Boxes in a Line
    STL 之 iterator traits 备忘
    python设计模式 之 简单工厂模式
    extjs 时间范围选择的实现
    数据结构
    nodeJS npm grunt grunt-cli
    Ubuntu: GlusterFS+HBase安装教程
    ubuntu 休眠之后蓝牙鼠标无效果。
    基于sparksql调用shell脚本运行SQL
  • 原文地址:https://www.cnblogs.com/WhatTTEver/p/6682675.html
Copyright © 2020-2023  润新知