GB 2312
GB/T 2312[註 1],GB/T 2312—80 或 GB/T 2312—1980 是中华人民共和国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,通常簡稱GB(「国标」汉语拼音首字母),又稱GB0,由中国国家标准总局於1980年发布,1981年5月1日实施。GB/T 2312编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB/T 2312。 概述GB/T 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、注音符号、俄语西里尔字母在内的682个字符。 GB/T 2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。但对于人名、古汉语等方面出现的罕用字和繁體字,GB/T 2312不能处理,而是由一系列的国标辅助集负责编码和显示(如GB/T 12345《信息交换用汉字编码字符集 第一辅助集》、GB/T 7589 《信息交换用汉字编码字符集 第二辅助集》及GB/T 7590《信息交换用汉字编码字符集 第四辅助集》),但是 ISO-2022-CN-EXT 最终未给国标除了 GB/T 2312 以外的其他辅助集提供逃逸字符串[1][2]。后来GBK及GB 18030汉字字符集相继出现以解決這些問題。 分区表示GB/T 2312 中对所收汉字进行了“分区”处理,每区含有94个汉字/符号,共计94个区。实际上,GB/T 2312 只使用了87区。 用所在的区和位来表示字符(实际上就是码位)的方法称为区位码(或许叫“区位号”更为恰当[來源請求])。例如“万”字在45区82位,所以“万”字的区位码是 45-82(45是“区码”,82是“位码”)。在储存进电脑时,电脑会在区位码上加上特定数字后才保存进内存以确保和其他编码兼容(如 ASCII)。转码后,区位码的“区码”会变成“高位字节”,而“位码”会变成“低位字节”。 下列是 GB/T 2312 分区后在区段内储存的字符:
字节结构在 GB 2312 内,每个汉字及符号的码位使用两个字节来表示。第一个字节称为“高位字节”,对应分区的编号(把区位码的“区码”加上特定值);第二个字节称为“低位字节”,对应区段内的个别码位(把区位码的“位码”加上特定值)。 ISO 2022-CN(国标码、交换码)
为了避开ASCII字符中的不可显示字符(十六进制为 在这个编码模式内,软件需要使用低端控制字符(C0),高端控制字符(C1)和US-ASCII字符集(GL)标注字符属于单字节(ASCII)还是双字节,相对容易造成乱码(如丢失控制/转义字符)。 在 GB/T 2312 内,高位字节使用了 例:“万”字(区位码 45-82)的 ISO 2022 码十进制为:(45+32, 82+32) = (77, 114),十六进制为: EUC-CN(机内码、内码)因为国标码和通用的ASCII码冲突,因此后续为了方便辨认单字节和双字节的编码,部分厂商在 ISO 2022 的基础上把双字节字符的二进制最高位都从 0 换成 1,即相当于把 ISO 2022 的每个字节都再加上128(十六进制为 在 GB/T 2312 内,高位字节使用了 例:“万”字(区位码 45-82)的 EUC 码十进制为:(45+160, 82+160) = (205, 242),十六进制为: HZHZ 编码是由李楓峰在1988年发明的编码系统[5]。其目的是在7字节的限制下(如电子邮件)储存 GB/T 2312 的双字节字符。其在 ISO 2022 编码字符的前后分别加上转义字符 例:“万”字(区位码 45-82)的 ISO 2022 码十六进制为 修訂GB 5007.1—85《信息交换用汉字 24x24 点阵字模集》首次附錄對 GB/T 2312之更正,包括:
GB 5007.1—1985曾将「麴」(84—80)更换成「麹」,但是后续修订(GB 5007.1—2001 和 GB/T 5007.1—2010)和其他字模集仍旧保留 GB/T 2312的繁体偏旁「麥」之「麴」。 GB/T 2312本身一直未有修訂,但此等修訂部份收入相關字模集(下詳)、GB/T 12345、後續之GBK及GB 18030。 GB/T 2312亦用於ISO-IR-165。 两种不同的GB/T 2312实现有两种不同的GB/T 2312实现,在它们之间存在少量的差别,其中至少有一个是错误的。
GBK子集与GBK/GB 18030兼容,GB2312.TXT则不兼容。后者基于ftp.unicode.org曾经提供的GB2312.TXT实现,[10]于2011年由官方弃用,[11]2016年9月时已无原文件踪迹。此外还有很多种厂商实现。[10] 截至2015年[update],微软.NET使用的是“GBK子集”实现。ICU[12]、libiconv-1.14、[13]php-5.6、ActivePerl-5.20、Java 1.7、Python 3.4[14]都使用“GB2312.TXT”实现。Ruby 2.2兼容两者编码,但内部使用“GBK子集”实现。W3C的编码技术指南规定,应将 字模集
注釋参考文献
外部链接
参见
|
Portal di Ensiklopedia Dunia