中文字符集
中文字符集是计算机用于表示汉字及中文相关符号的一套编码集合,它规定了每个汉字对应的二进制编码值。由于汉字数量庞大,无法用单字节容纳,中文字符集普遍采用双字节或多字节编码。中国大陆先后形成GB2312、GBK、GB18030等国家标准,台湾、香港等繁体中文地区则长期使用大五码,这些字符集互不兼容,是中文信息交换与处理的基础。
定义
中文字符集是为汉字及中文相关符号设计的一套编码集合,其作用是把每个汉字映射为一个计算机可以存储和处理的数值编码。在计算机内部,英文字符通常由单字节的ASCII编码表示,而汉字数量远多于单字节能够表示的256种状态,因此中文字符集普遍采用双字节或多字节方式编码。[1]
字符集与编码格式是相关但不完全等同的概念。字符集对应码值的集合,而UTF-8、UTF-16等属于这些码值的具体表示与传输形式,GB2312、GBK、大五码等字符集的码值互不相同,同一个汉字在不同字符集中的编码并不一致。
在中文信息处理中,字符集还常被区分为内码与交换码两类。内码用于系统内部存储,交换码用于不同系统之间的信息传递,大五码属于内码,而CNS 11643等属于交换码。[2]
原理
以GB2312为例,为避免与单字节的ASCII编码冲突,规定表示一个汉字的两个字节取值都大于127,即字节最高位为1,前一字节称高字节,后一字节称低字节;取值小于128的字节仍按ASCII解释,因此GB2312向下兼容ASCII。
GB2312对所收汉字采用区位划分方式,每个区含94个位,汉字与符号据此对应到第一字节与第二字节上,这种表示方式称为区位码,由区位码可换算出国标码与机内码。
GB18030在编码结构上采用变长方案,字符可由1个、2个或4个字节组成,单字节部分与ASCII兼容,双字节部分与GBK、GB2312兼容,四字节部分的第二、第四字节使用0x30至0x39作为后缀,编码空间因此扩充到150万个以上码位。[3]
不同字符集之间的转换往往需要借助统一码作中介。例如GBK、GB2312与UTF-8之间不能直接互转,须先转换到Unicode码,再转换为目标编码。
发展历程
1980年,中国国家标准总局发布GB2312《信息交换用汉字编码字符集·基本集》,这是中国首个汉字编码国家标准,1981年5月1日起实施。该标准采用双字节编码,收录6763个汉字和682个符号,其中一级汉字3755个按拼音排序,二级汉字3008个按部首排序,基本满足了当时汉字计算机处理的需要。
在繁体中文地区,台湾财团法人信息产业策进会于1983年12月完成大五码的公告,为五大中文套装软件设计共通内码,共收录13060个汉字。该编码随倚天中文系统等的普及而广泛使用,长期作为业界标准而非官方标准,2003年被收入CNS 11643中文标准交换码附录,形成Big5-2003版本。[2]
由于GB2312收录字符有限,难以处理人名、地名和古籍用字,1995年发布GBK(汉字内码扩展规范),在完全兼容GB2312的基础上把字符集扩展到21886个字符,涵盖繁体字、生僻字和更多符号,并被用作简体中文Windows系统的默认编码。
2000年,强制性国家标准GB18030发布,采用1字节、2字节和4字节的变长编码,在兼容GBK的同时大幅扩展码位,并支持藏文、蒙文、维吾尔文等少数民族文字。[4]
GB18030此后经历多次修订。2022年7月,国家标准化管理委员会、工业和信息化部、国家语言文字工作委员会联合发布新版GB18030-2022,收录汉字87887个,比上一版增收1.7万余个生僻汉字,于2023年8月1日正式实施。[5]
在国际层面,国际标准化组织于1993年发布ISO/IEC 10646国际编码标准的首个版本,为包括繁体与简体中文在内的世界主要语文编订统一内码;香港特区政府在数码21资讯科技策略下采用该标准并制定《香港增补字符集》,以处理本地特有汉字。[6]
应用
中文字符集是中文信息处理与交换的基础。GB2312通行于中国大陆以及新加坡等地使用简体中文的区域,大陆几乎所有的中文系统和国际化软件都对其提供支持。
操作系统层面常以代码页方式指定所用字符集,简体中文版Windows使用代码页CP936,对应GB2312、GBK、GB18030系列编码;繁体中文版使用CP950,对应大五码;多数Linux系统则使用UTF-8本地化环境。[3]
GB18030作为强制标准,用于政府、金融、邮政、户政、地理信息系统等对姓名、地名用字有严格要求的领域,并推动少数民族语言的信息化。[6]
在繁体中文地区,CNS 11643中文标准交换码被纳入政府机关资讯处理共通规范,政府机关公文电子传递须先转换为此码;台湾的户役政全国连线系统也采用了CNS 11643的编码架构及字集。[7]
局限
早期字符集的收录规模有限。GB2312仅含6763个汉字,大五码含13060个汉字,相对《康熙字典》《汉语大字典》所收五六万字,只能覆盖常用部分,未被收录的汉字无法由计算机处理,在录入人名、地名时容易遇到缺字。[1]
多套字符集并存带来互通困难。同一码值在不同字符集中可能代表不同字,简繁两套系统之间还存在一对多、一对零的映射,需要在同一平台上配置多套代码时的切换机制,否则会造成数据被错误解读和乱码。[8]
编码空间的浪费也制约了早期方案的扩展。为避开各字节的0至32和127等控制码,双字节编码体系理论上可容纳65536个字符,实际可用码位被明显压缩。[1]
与统一码的兼容性上,GB2312、GBK等编码仅收录英文字母、数字、汉字及俄文字母等字符,无法表示蒙古语、藏语、维吾尔语、泰语、韩语等多种语言文字,须借助GB18030等经由统一码兼容的方案才能覆盖。[3]
参见
参考资料
- 汉字编码及其应用的研究 [引用日期2026-10-14]
- 图文详情——科普中国资源服务 [引用日期2026-10-14]
- [0023] 不同的操作系统版本可能使用不同的编码字符集 [引用日期2026-10-14]
- 常见中文编码字符集介绍 [引用日期2026-10-14]
- 新版《信息技术 中文编码字符集》强制性国家标准发布 [引用日期2026-10-14]
- 中文界面諮詢委員會 [引用日期2026-10-14]
- \ 認識全字庫 \ 中文碼介紹 [引用日期2026-10-14]
- Fundamentals of CJK Encoding [引用日期2026-10-14]