Python基础知识初识 (二)
编码初识
1.ASCLL
计算机:
计算机存储文件,存储数据,以及将一些数据信息通过网络发送出去,存储发送数据什么内容?底层都是01010101
计算机创建初期,美国,是7位一段,但是发明者说为了拓展,留出一位,这样就是8位一段句。8位有多少种可能 ?256种
编码相当于密码本,最早的密码本:
ASCII码:只包含:英文字母,数字,特殊字符。
0000 0001 : a
0000 0101 : b
8bit (位)== 1byte(字节)
'hello123': 8byte
2.GBK
GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容.
英文字母,数字,特殊字符和中文。国标码只能中国使用,英文是按照ASCLL走的
0000 0001 : a 1字节 8位 ASCLL
0000 0001 0100 0001 : 中 2字节 16位
主要记住GBK中文2字节,英文一个字节。
随着计算机的发展. 以及普及率的提高. 流⾏到欧洲和亚洲. 这时ASCII码就不合适了. 比如: 中⽂汉字有几万个. 而ASCII 多也就256个位置. 所以ASCII不行了. 这时, 不同的国家就提出了不同的编码用来适用于各自的语言环境. 比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使用计算机了.
3.Unicode
Unicode: 万国码:把世界上所有的文字都记录到这个密码本。
起初一个字符用2个字节表示: 就是一个中、英文都是2个字节
0000 0001 0000 0011: a 2字节 16位
0000 0001 0100 0001: 中 2字节 16位
后来为了涵盖全部文字: 中、英文都是4个字节,这样太浪费资源了
0000 0001 0000 0011 0000 0001 0000 0011: a 4字节 32位
0000 0001 0100 0001 0000 0001 0000 0011: 中 4字节 32位
4.utf-8
对Unicode进行升级:
0000 0011 a 1字节 8位
0000 0011 0000 0011 欧洲 2个字节 16位
0000 0011 0000 0011 0000 0011 中: 3个字节 24位
例子:'中国12he' : GBK: 8个字节 英文1字节,中2字节
'中国12he' : UTF-8: 10个字节 英文1字节,中3字节