zoukankan      html  css  js  c++  java
  • 编码

    一、各种编码

    1.1 各种编码的字节占用个数

    ascii : 一个字符用1个字节表示
    A: 0000 0010 8位,1个字节
    unicode :中文、英文都是32位,4个字节
    A: 00000000 00000001 00000010 00000100 32位,四个字节
    中: 00000000 00000001 00000010 00000110 32位,四个字节
    utf-8: 1个英文 8位,1个字节
    欧洲 16位,2个字节表示一个字符
    亚洲 24位,3个字节表示一个字符
    A:0010 0000 1个字节,8位
    中:0001 0000 1000 0000 0000 0000,,3个字节,24位
    gbk:
    A: 0000 0010 8位,1个字节
    中:0000 0010 0000 0110 ,2个字节,16位
    1、各个编码直接的二进制是不能互相识别,会产生乱码
    2、文件的存储及传输不用unicode,因为unicode太占空间,所以只能用utf-8、gbk、gb2312、ascii码等
    在py3中:str在内存中是用unicode存储的,即用unicode的编码方式
    bytes类型:与str编码方式的区别是不用unicode编码,是用utf-8、gbk、gb2312、ascii等编码方式
    对应英文:
    str: 表现形式: s = "peng"
    内部存储:010000 00000000 00000000 00000000 unicode
    bytes:表现形式:s = b"peng"
    编码方式:00001010 可能是utf-8或者gbk等
    对于中文:
    str: 表现形式: s = "peng"
    内部存储:010000 00000000 00000000 00000000 unicode
    bytes:表现形式:s = b'x\e91\e91\e01\e21\e32' 编码方式:00001010 可能是utf-8或者gbk等

    1.2 编码类型举例
    str与bytes数据类型
    1 1 = "peng"
    2 s2 = b"peng"
    3 
    4 print(s1,type(s1))
    5 print(s2,type(s2))
    6 结果:
    7 peng <class 'str'>
    8 b'peng' <class 'bytes'>
    View Code
    1 s1 = "广东"
    2 print(s1,type(s1))
    3 s2 = b"广东"
    4 print(s2,type(s2))
    5 结果:
    6  File "E:/Python Project/05/Day5/编码.py", line 42
    7     s2 = b"广东"
    8         ^
    9 SyntaxError: bytes can only contain ASCII literal characters.
    View Code
    encode 编码,将str转为bytes,内部其实就是unicode转为gbk或者utf-8等类型
    1 s1 = "peng"
    2 s2 = s1.encode("utf-8")#把str类型数据转为bytes类型,并且为utf-8类型
    3 print(s2)
    4 s2 = s1.encode("gbk")#把str类型数据转为bytes类型,并且为gbk类型
    5 print(s2)
    6 结果:
    7 b'peng'
    8 b'peng'
    View Code

    encode编码,将中文转为bytes类型

    1 s3 = "广东"
    2 s4 = s3.encode("utf-8") #每一个中文用3个字节
    3 print(s4)
    4 s5 = s3.encode("gbk") #每一个中文用2个字节
    5 print(s5)
    View Code
    结果:
    1 b'\xe5\xb9\xbf\xe4\xb8\x9c'
    2 b'\xb9\xe3\xb6\xab'
    View Code

     1.2 默认编码

    Windows默认是GBK编码模式,py开发软件里面默认是utf-8模式













  • 相关阅读:
    chapter4 quantum circuits
    《用广义CNOT门产生质数幂维的图态》
    幺正矩阵的分解
    SpringCloud学习----阳哥(五)
    SpringCloud学习----阳哥(四)
    SpringCloud学习----阳哥(三)
    SpringCloud学习----阳哥(二)
    SpringCloud学习----阳哥(一)
    IDEA插件介绍(一) -RestfulToolkit(接口自测工具)
    常用SQL语句和XML文件格式
  • 原文地址:https://www.cnblogs.com/xiaofei1106/p/10588352.html
Copyright © 2011-2022 走看看