中文字符集,都是GB开头的,GB=Guo Biao=国标=国家标准,GBK中K指“扩展”的意思。
常见的中文字符集:GB2312 < GBK < GB18030,下图为其包含关系,可表示字符 从内到外增加。
刚开始时(1980年):GB2312 编码,它包括了 Ascii 中的编码,还扩充可以表示6000多个常用汉字。
后来:GBK 编码,它包括了 GB2312 中的编码,还扩充包含繁体和各种字符等。
再后来:GB18030 编码,包括GBK中的编码,还扩充包含少数名族的字符。
以后的以后:.......
.......不断扩充.......
.......不断扩充.......
.......不断扩充.......
综合:GB2312 和 GBK,对于英文等Ascii 字符集中的字符用一个字节存储。其他后来扩充的中文字符则是 两个字节。
注意:
1.Big5是与GB2312同时期的一种台湾地区繁体字的编码格式。后来GBK编码的制定,把Big5用的繁体字也包含进来(但编码不兼容,所以不是一个体系,就没有画在上图中)。
2. 全角和半角之分:
历史:是由于中文文字 比 Ascii字符 宽(大只),所以打印文件时容易不整齐(不太好看),因此设计了 用两个字节(全角)来表示 Ascii字符。这在平时用的输入法中可以切换。
全角英文:两个字节 (大只)
半角英文:一个字节 (小只)
然而平时我们只能用半角来编程。
3.同一个编码文件里,怎么区分ASCII和中文编码呢?从ASCII表我们知道标准ASCII只有128个字符,0~127即0x00~0x7F(0111 1111)。所以区分的方法就是,高字节的最高位为0则为ASCII,为1则为中文。