• 11.编码与二次编码


    二次编码

    编码类型

    ASCII:不支持中文,英文1个字节

    gbk : 英文1字节, 中文2字节

    unicode: 中英都占4个字节****

    utf-8: 英文1 欧洲 2 亚洲 3个

    重点

    编码:上锁

    解码:开锁

    例:
    
    s = '你好'
    
    s1=s.encode('utf-8')  #编码
    
    print(type(s1))    # 结果为字节类型 bytes
    
    print(s1)
    
    s2= s1.decode('utf-8')    #解码
    
    print(s2)
    

    文件存储和网络传输使用的都是字节

    s ='你好,世界'
    s1= s.encode('gbk')
    s2= s1.decode('gbk')
    print(s1)
    print(s2)
    结果:
    b'xc4xe3xbaxc3xa3xacxcaxc0xbdxe7'
    你好,世界
    

    作用

    1.文件操作 ----指定以什么编码进行存储

    2.网络编程 ---- 发消息只能发送字节类型

    注:

    ascii码:计算机创建初期,美国,是7位一段,但是发明者说为了拓展,留出一位,这样就是8位一段句。8位有多少种可能 ?256种

      密码本:
    
        ascii
    
             00000001
    
             01000001 01000010 01000011   ABC
    

    随着计算机的发展. 以及普及率的提高. 流⾏到欧洲和亚洲. 这时ASCII码就不合适了. 比如: 中⽂汉字有几万个. 而ASCII 多也就256个位置. 所以ASCII不行了. 怎么办呢? 这时, 不同的国家就提出了不同的编码用来适用于各自的语言环境. 比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使用计算机了.

    GBK:

    GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是用英文写的. 你不支持英文肯定不行. 而英文已经使用了ASCII码. 所以GBK要兼容ASCII. 这里GBK国标码. 前⾯的ASCII码部分. 由于使⽤两个字节. 所以对于ASCII码⽽言. 前9位都是0

    字母A:0100 0001 # ASCII
    字母A:0000 0000 0100 0001 # 国标码
    

    随着全球化的普及,发展到欧洲,亚洲等国家,发现这些根本不够用,所以创建了万国码。 因为全球语言很多,ascii不足以存储这么多对应关系,创建了一个超级密码本:万国码unicode

    8 位 == 1个字节.
    hello h一个字符,e一个字符,he就不是一个字符.
    中国:中是一个字符,国是一个字符.
    

    Unicode:

    创建之初,16位,2个字节,表示一个字符. 英文: a b c 六个字节 一个英文2个字节 中文 中国 四个字节 一个中文用2个字节

    但是这种也不行,这种最多有65535种可能,可是中国文字有9万多,所以改成 32位,4个字节,表示一个字符.

    a 01000001 01000010 01000011 00000001 b 01000001 01000010 01100011 00000001 中 01001001 01000010 01100011 00000001 浪费资源.

    UTF-8:

    对Unicode进行升级: utf-8 utf-8 用最少用8位数,去表示一个字符. 英文: 8位,1个字节表示. 欧洲文字: 16位,两个字节表示一个字符. 中文,亚洲文字: 24位,三个字节表示.

    utf-16 用最少用16位数。

    gbk: 国标,只能中国人自己用, 一个中文用16位,两个字节表示。

    存储单位换算:

    8bit = 1byte
    1024byte = 1KB
    1024KB = 1MB
    1024MB = 1GB
    1024GB = 1TB
    1024TB = 1PB
    1024TB = 1EB
    1024EB = 1ZB
    1024ZB = 1YB
    1024YB = 1NB
    1024NB = 1DB
  • 相关阅读:
    sql查询重复记录、删除重复记录方法大全
    查询字段所在的表/视图
    查询某张表被哪些存储过程或者视图用到的sql语句
    SQL中char、varchar、nvarchar的区别
    JS快速获取图片宽高的方法
    Git代码冲突常见解决方法
    HTML__图片轮播ion-slide-box
    oracle列出两个日期间所有日期
    myeclipse 8.0 注册码
    网页中图片旋转的几种实现方式
  • 原文地址:https://www.cnblogs.com/yangte/p/13532825.html
Copyright © 2020-2023  润新知