Python中编码解码过程(ASCII - Unicode - UTF-8)
Python中编码解码过程(ASCII - Unicode - UTF-8)
转载:https://finthon.com/python-encode-decode/
在计算机科学中,所有的信息(视频、文件、音频等)都是以二进制数字形式进行存储。而编码过程可以看成将人类的语言翻译成机器的语言,将其他类型的数据翻译成相应的数字流表达,解码过程则相反。在这个翻译的过程中就需要“密码本”,所谓的“密码本”就记录了人类语言中每个字符对应的唯一数字编号。最早出现的“密码本”叫做ASCII,后面各个国家都编码了属于自己的“密码本”,中国有GB2312编码,日本有Shift_JIS编码,韩国有Euc-kr编码。各国有各国的标准,就会不可避免地出现冲突,因此诞生了一统编码界的 Unicode “密码本”。
在介绍编码之前,我们先来说说位(bit)和字节(byte)的定义,有利于我们理解编码过程。
位(bit):音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。
字节(byte):音译为“拜特”,习惯上用大写的“B”表示。字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。
计算机是由美国人发明的,因此他们编写了英文字符和一些控制字符与二进制之间的映射标准,即所谓的ASCII编码标准