1.文本编码历史
print(‘中’.encode(encoding=‘gbk’)) -> b’\xd6\xd0’
gbk编码 :一个汉字两个字节
为了节省流量 国内有人仍坚持gbk
‘中’.encode(encoding=‘utf-8’)
对于中文,gbk比utf8节省三分之一的空间
解码: 二进制->自然信息
eg: b’\xd6\xd0’.decode(encoding=‘gbk’)
历史
我们看到的信息,例如一个文字‘中’,存储到电脑中,二进制。物理0-3v3-5v1.
编码 encoding:自然信息‘中’→二进制0101
解码 decoding:二进制→自然信息‘中’
1.上世纪电脑刚刚产生
内存、硬盘非常贵
最小信息单位1字节8bit位二进制1byte=01010101
1000byte 1kb 1000kb=1Mb 1000Mb=1Gb Tb Pb
’a‘->80000001
‘b’->0000010
‘c’->0000011
1byte8位,2的8次方,256种可能
把a-z,A-2,±()$#,把一百多种常见英文字母字符编进去,
发明了编码方式【ascii】
2.上世纪末电脑开始传入其它国家
欧洲,亚洲,中国大陆、中国台湾、日本、韩国
ascii编码无法表达中文。
用2个字节,2的16次方,65535种可能
‘一’ -> 00000000 00000001
‘中’ -> 00000010 00000101
编码常用的2w多种汉字
中国大陆发明编码方式【gbk2312】更新繁体字生僻字【gbk12302】,统称【gbk】
问题是,
中国台湾big5
'我’ -> 00000010