计算机编码与Python的编码
文章目录
1 编码知识
1.1 概念
-
信息: 狭义上是人类活动中所需相互传达的某种信号。
-
数据: 是携带信息的介质。这种介质有多种格式,可能是:数字,音频,视频,文字等等。简单的来讲,数字是一种工具,1是数字的一个内容,但是如果数字为工具,表达数量的概念。那么‘1个苹果’,‘1个人’就是我们所需传达、被理解的信号。
-
编码:编码是信息从一种形式(数据,如汉字)或格式转换为另一种形式的过程。所以说,宏观的讲,编码也是携带数据、信息的一种介质,是计算机生成的一种介质。计算机不能读懂汉字,但是能通过编码,识别操作。
-
解码: 解码是受传者将接受到的符号或代码还原为信息的过程,与编码过程相对应。
简单来说,从明文到编码文字,称为"编码"。从编码文字解释出到明文,称为"解码"。
1.2 六种编码文字
-
ASCII: 计算机存储数据是用了一个个电阻单元,打开为:1,关闭为: 0,称为1bit,也正为1位。最早,美国人用八个电阻去表达字符符,也就能表达256个不同的字符,英文单词才有26个,加上一些特殊字符也绰绰有余了。如字符A -> 00010001。
-
ANSI: 扩展的ASCII码,早期的字符刚满128个。所以第8位往往是0。为了表示更多字符,有扩展了第八位。共可表达256位字符,其中包含了一些拉丁文。
-
GB2312: 在中国日新月异的发展当中,计算机编码也传递了过来。但是,之前的编码不能表达汉字。所以1980年,我国自主研发了GB2312编码。把第8位对应的拉丁文删除。将二进制数值小于127的字符意义不变,仍表示英文字符和一些特殊字符;但将大于127的字符,于另一大于127的字符自由组合,表示为一个特定的汉字。简单来说,就是两个大于127的字节表示一个中文汉字。共能表示7000多个汉字。其也算是对ASCII编码的扩展。
-
GBK与GB18030: 但是7000个汉字,是不够用的。所以,之后扩展为,当第一个字节大于127,后接随意字节,就表示为一个汉字。在GB2312的基础上,又增加了20000多个汉字(包含一些繁体字和符号)。
-
UNICODE: 该编码用两个字节表示一个字符,256*256 = 65536 个。 共可以表示6万5千多种不