关键字:编码、解码、字符集、字节
前言:
①在计算机中只能够识别011100这种二进制数,而对于常见的字符,计算机是没办法识别的。
②字节:一个抽象的概念,是用来表示二进制数据的。一个字节由8位二进制数字组成,因为一般用十六进制表示二进制数,所以一个字节由两个十六进制数表示
1、编码、解码:
编码:通过某种方式,把字符转换为0110这种二进制数据,那么这个过程就称为编码。
解码:我们把这些0110等二进制数据再转换回常见的字符的过程就称为解码。
2、字符集:
在这个编码、解码的过程中,怎样实现字符和二进制数据的映射、匹配呢?对了,一般是不用二进制数据来表示字符的编码的,而是采用字节来表示编码(用二进制表示的话太长了)。那么怎样实现字符和字节数据之间的映射呢?因此就提出了字符集的概念。不同国家通过不同国家制定的字符集实现字符到字节数据之间的映射。ASCII、GBK, unicode、gb2312、utf-8等等都是字符集。通过制定了这些字符集,就可以实现不同字符与实际存储内容的一一对应。
注意:
(1)在将字符进行编码的时候,按照某种指定的字符集,来把当前字符编码成对应的字节数据(中文字符就需要按照中国国定的字符集将字符编码成对应数据,然后得到编码后的内容。日本的按照日本规定的字符集进行相应的转换)。然后在解码的时候也按照这个编码原来的选择的字符集进行解码,最后就可以得到正确的字符。这就是编码与解码的过程。
(2)unicode与utf-8的区别:
unicode: 是目前兼容世界大多数国家的字符集
unicode与utf-8的区别:unicode规定的字符对应的表示,每一个字符都在unicode中又一个对应的表示(编号),都会被转换成对应的二进制数据,但是没有规定这些编号是如何存储的。utf-8则就完成了这个功能(它里面有相关的规定:比如一个中文由三个字节组成)
3、字节与字符:
(1)字符就是文本中最小的单元。字符就是文本中的单个符号。
(2)字节:字符通过编码就会形成字节。是可以直接被机器识别的字符的另外一种表现形式。本质上就是一组二进制数据,只不过一般用16进制表示。
两者的关系:一个字符可以转换成多个字节进行存储
4、python中的编码&&解码:
(1)encode和decode:
encode():就是对字符进行编码,形成字节数据。 unicode->byte
decode():就是对"编码"(字节数据)进行解码,得到字符。 byte->unicode
(编码是将原始数据编码成二进制数据;解码是把二进制数据解码成原来的数据)