ASCII表
预备知识
- 编码:字符由人能看懂的形式(一般是ASCII或者Unicode字符串)变为b的形式(二进制字节序列)
- 解码:字符由计算机能够识别的形式(二进制字节序列)变为人能看懂的形式(一般是ASCII或者Unicode字符串)
ASCII编码
ASCII
((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646
。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符
。
ASCII码使用指定的 7 位
或 8 位
二进制数组合来表示128
(27)或256
(28)种可能的字符。
在英语中,用
128个符号
编码便可以表示所有,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用 ASCII 码表示。
于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é
的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号
。
标准ASCII码表如下:
- (1)
0~31
及127
(共33个)是控制字符或通信专用字符(为非可显示字符) - (2)
32~126
(共95个)是字符(可显示字符)48~57
为0到9十个阿拉伯数字65~90
为26个大写英文字母97~122
号为26个小写英文字母- 其余为一些标点符号、运算符号等
注意:
前32个符号,是非计算机显示字符
后续:Unicode、utf-8
很明显ASCII编码
很难满足所有语言的需求,所以只能创造自己的一套标准。
比如我们中国的汉字编码,目前的文字编码标准主要有 ASCII
、GB2312
、GBK
、Unicode
等。
ASCII 编码
是最简单的西文编码方案。GB2312、GBK、GB18030 是汉字字符编码方案的国家标准。
但是总不能俄语、韩语和日语都去用自己的一套标准,那还如何进行交流呢?
所以出现了全球通用的编码标准,Unicode
。
unicode只是一个字符集,它规定了不同的字符在二进制上的表示形式。
注意,Unicode仅仅规范了符号的编码方式,但是对于存储的方式并没有对此说明:有的字符一个字节即可完成储存,有的可能需要3个或者4个字节来储存,但是如果为了考虑所有字符都以4个字节去储存(4个字节的字符转化为二进制数则有32位!),则编码效率低下,还浪费大量空间。
UTF-8
可以理解为一种变长的Unicode编码,为解决Unicode存储问题而出现,根据需要编码的字符来调整所需的字节数,从来节省空间。
关于选择:
- Unicode 是业界标准,编码字符数量最多,天然支持国际化;
- UTF-8 完全兼容 ASCII 码,这是硬性指标;
- UTF-8 目前应用最广;
参考: