编码编码的本质是让只认识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码。
encode()和decode()编码encode:人->(编码表)->计算机 '要编码的内容'.encode('使用的编码表') 解码decode:计算机->(编码表)->人 '要解码的内容'.decode('使用的编码表') python3中无法使用encode('Unicode')。 Python3中,程序处理输入的字符串时,默认使用Unicode编码的。 示例:
|
|