编码的本质是让只认识0和1的计算机,能够理解人类的语言符号。并存储为二进制的数据。
人类语言到计算机语言的转换形式叫编码表,能够让人类语言和计算机语言一一对应。
位---用来存放1和0,计算机里最小的存储单位。也叫bit(比特)。
字节---8个bit(位)构成一个byte(字节)。计算机常用的单位。
1B(byte)=8bit 1kB=1024B 1MB(兆)=1024KB 1GB(吉)=1024MB
这就是为什么100兆(100M bit/s)的宽带,却只有10几兆(byte/s)的下载速度。
除了0和1 的阿拉伯数字,英文大小写字母,一些常用符号,都是用一串二进制数来表示。具体哪些二进制数代表哪个符号,理论上每个人都可以有自己的一套规则(即编码)。如果每人一套编码规则,相互沟通时会造成混乱,造成‘乱码’。
美国首先出台了ASCII,统一规定了常用符号用哪些二进制数来表示。适用英文大小写,字符,不支持中文。占用空间小。
GB2312码、GBK码 支持了中文 GBK码是GB2312的升级
Unicode码 支持国际语言 占用空间大,适用性强。在ASCII码补8个位
UTF-8 码 支持国际语言 是Unicode的升级,两者可以相互转化,占用空 间小。UTF-8码包含ASCII码。
计算机的工作区即内存。数据在内存当中处理时,使用的格式是Unicode,统一标准。
数据在硬盘上存储或网络运输是用的是UTF-8。
Python3中,程序处理输入的字符串时,默认使用Unicode编码的,我们可以输入各种语言。
部分中文的文件和中文文件还在使用GBK,和GB2312
编码encode:人->(编码表)->计算机 '要编码的内容'.encode('使用的编码表')
解码decode:计算机->(编码表)->人 '要解码的内容'.decode('使用的编码表')
python3中无法使用encode('Unicode')。
联系客服