ASCII编码 (American Standard Code for Information Interchange) 美国信息互换标准代码
在计算机发展的早期,ASCII(1963年)主要用于定位英语字符与二进制位之间的关系,是现今最通用的单字节编码系统,后逐渐成为标准。但是因为成为标准,每个国家的字符都不一样,所以有很多的局限性,因此后来出现了Unicode编码。
并且我们要知道,在计算机中所有数据,不论是文字、图片、视频、还是音频文件,本质上最终都是按照类似 01010101 的二进制存储的。每一个二进制位(bit)有0和1两种状态(高低电平的状态,八个电平表示一组),因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。
ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码。其中96个字符可以显示。另外32个为控制字符不可以显示。
标准ASCII码为7位,扩充为8位,国际通用的是7位版。
7位二进制就是0000000~1111111,最小0,最大127,共128个。
8位二进制就是00000000~11111111,最小0,最大255,共256个。
0~31及127(共32个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共96个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
(一个ASCII编码使用一个字节(除去字节的最高位作为作奇偶校验位))
比如ASCII编码中的01000001(即十进制的65)表示字符'A',01000001加上32之后的01100001(即十进制的97)表示字符'a'。调用chr和ord函数,我们可以看到Python为我们对ASCII编码进行了转换。
>>> chr(65)
'A'
>>>ord('A')
65
>>>ord('a')
97
字符编码对照表:http://ascii.911cha.com/