字符编码方案

ASCII

因为计算机是美国人最先搞出来的,而美国人使用的符号少,一个位就足够了,这就是ASCII。

GB2312

1 兼容ASCII

2 由两个大于127 的字节来映射我们增加的字节;

3 发现最高位是0 ,那么就可以确定这个字节映射的的就是ASCII的字符,那么就只读取一个字节,然后去查ASCII表,然后将其解析为对应的字符。发现最高位是1 ,那么就可以确定这个字节映射的就是GB2312 的字符,那么就连续读两个字节,然后去查GB2312 ,然后将其解析为对应的字符。

4 ASCII重新映射了两个字节的ASCII,这些称为全角字符,而本身的ASCII的一个字节映射的字符,称为半角字符。

6 后面又增加了一些字符,形成了GBK,然后再增加了一些,形成了GB18030 ,都向前兼容。

7 ANSI,在不同操作系统中,对应不同的字符编码,如简体中文的操作系统,对应GB2312 ,繁体的对应Big5 ,日语的操作系统对应JIS。

unicode

身只规定了对应的二进制数是多少,因为需要更多的位数,但发现一些编码在前的前面有大量的0 ,造成空间浪费,可以考虑另外经济的存储方案,所以在unicode编码的基础上,再搞一套存储的编码方案,这就是utf,以用时间来换空间,或用空间换时间,或折衷,对应utf-8 、utf-32 、utf-16 ,因为存储的是另外一套编码体系,需要再做转换。转换格式分别是:

utf-8 :不同的编码段使用不同的字节数(1 -6 )存储,一位的以0 开关,两位的段以110 和10 开头,三位的以1110 和10 、10 开头,四位的以11110 和10 、10 、10 开头,这样,低段的节省了空间。以时间换空间。

utf-16 :使用两个字节或者4 个字节来存储,分两个段,第一个段则直接存储,不转换,使用两个字节,如果属于第二个段(高段),第1 、2 个字节以11011 0 开头,第3 、4 个字节的以11011 1 开头,其它的以unicode编码依次填入。

utf-32 :固定长度,使用4 个字节存储,以空间换时间。

本页共15段,990个字符,2271 Byte(字节)