目录
1. ASCLL
2. GB2312
3. GBK/gbk
4. GB18030
5. Unicode
6. 总结
1. ASCLL
在计算机刚开始被美国人发明的时候,需要将字符存储到计算机进行运算或打印,于是选取了95 个可见字符(数字0-9,英文字母,标点符号),33个控制字符(空格、换行符之类的),编号称之为“码位”,再将码位转换为二进制进行存储,于是就出现了ASCLL字符集,ASCLL码;
总之,ASCLL 码只包含英文,数字,特殊符号,每个字符用1个字节表示,
但是ASCLL只能表示编码为 0--127 共128个字符,当欧洲国家使用时对其进行了扩展:新增128个字符,新增的128个字符称为“扩展ASCLL码字符集”,对应的 ASCLL码叫做“扩展ASCLL码”;
2. GB2312
新增后的 ASCLL码也只能表示 0--255 共256个字符,对于亚洲国家来说显然不够,尤其是中国,于是对字符重新编码,按照以下方式进行编码的字符集叫做GB2312字符集:
所以 GB2312,高位地位都大于127,共表示6793个汉字;
3. GBK/gbk
使用 GB2312 表示的汉字仍然有限,我们在空白区对字符集进行扩充,不再规定其低位一定要大于127;
简称国标,1个字节表示英文字符,2个字节表示中文字符;
4. GB18030
后来在GBK字符集的基础上又增加一些少数民族字符,产生了 GB18030;
5. Unicode
当然,如果每个国家都编写一套字符集,就会产生许多套字符集,十分不方便不同国家之间的信息交流,为了把世界上所有字符放在一起进行编码,方便交流,就产生了 Unicode 字符集,有人认为这是一套编码规则,有人认为这是一套字符集;
最初使用的是 Unicode-UCS-2 字符集,后面是 Unicode-UCS-4 字符集,但ASCLL 码每个字符使用1个字节,GB2312 码每个字符使用2个字节,Unicode-UCS-4 每个字符使用4个字节,内存占用太大,始终无法推广;
于是,又产生了 UTF-8:针对 Unicode 可变长度字符编码,1个字节表示英文字符,2个字节表示欧洲语言字符,3个字节表示亚洲文字,具体使用如下,反正我是看不懂;
总之,Unicode 码又称万国码,包含全世界所有的文字和符号,每个字符使用四个字节表示;