分享

编码知识理解---Python 学习

 201705 2020-04-16

编码

编码的本质是让只认识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()和decode()

编码encode:人->(编码表)->计算机   '要编码的内容'.encode('使用的编码表')  

解码decode:计算机->(编码表)->人     '要解码的内容'.decode('使用的编码表')

python3中无法使用encode('Unicode')。

Python3中,程序处理输入的字符串时,默认使用Unicode编码的。
示例:

  

  

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多