题记
对于计算机而言,存储的都是0和1,那么怎么使用0和1来表示这个世界呢,类似于怎么使用0和1映射到显示生活中;这时候就需要一种编码规则,将0和1组合,能够表示世界万物。
本文收益于于洋大神在知乎上绘声绘色的解答:Unicode 和 UTF-8 有何区别?
各种编码的诞生及规范
ASCII码
ASCII码,全称American Standard Code for Information Interchange,美国信息互换标准代码 ;我们知道计算机最早出现在美国,那么为了表示万物,他们(美国国家标准学会()制定了一套编码规范:使用7位或8位二进制组合来表示128或256中可能的字符;
标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符;
后128个称为扩展ASCII码,扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
GB2312 GBK
ASCII码中可以描述英文字母、标点符号、数字;但随着计算机的普及,其他国家也使用了计算机,那么就会遇到这样的问题ASCII编码格式没办法表达其他国家的语言,拿中国为例,中华文化博大精深,常用汉字有6000多个,在计算机怎么进行表示编码呢,这时就出现了另外的编码格式:GB2312 GBK GB18030;
- GB2312:
《信息交换用汉字编码字符集》是由中国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是GB 2312—1980。
分区表示:
GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
01-09区为特殊符号。
16-55区为一级汉字,按拼音排序。
56-87区为二级汉字,按部首/笔画排序。
10-15区及88-94区则未有编码。
举例来说,“啊”字是GB2312之中的第一个汉字,它的区位码就是1601。