20 世纪中叶,国际标准 ISO 10646 想要整合各种文本编码方案。 但草案(DIS 10646)并没有统一各种汉字字符集,部分成员国也表示反对,这必然导致新的编码()。 幸运的是,两者最终达成一致,ISO 10646:1993正式对应版本1.1。 否则,世界上就会有两个不同的字符集。
1. 编码流程
很久以前,计算机制造商有自己的表示字符的方式。 随着计算机越来越普及,制造商之间的竞争也越来越激烈,不同计算机系统之间的数据转换变得令人头疼。 最终,计算机制造商共同开发了一种描述字符的标准方法。 他们定义了使用字节的低 7 位来表示字符。 例如字母A是65,c是99,~是126等等,ASCII码就这样诞生了。 最初的 ASCII 标准定义了从 0 到 127 的字符,正好可以用七位来表示。 然而好景不长,其他国家的人们趁此机会开始使用128到255范围内的编码来表达自己语言中的字符。 勤劳的中国人民也行动起来了。 我们毫不客气地取消了数字127后面的奇怪符号,并规定:小于127的字符与原来的含义相同,但当两个大于127的字符连接在一起时,就代表一个汉字。 第一个字节(他称之为高字节)是从0xA1到0xF7,下一个字节(低字节)是从0xA1到0xFE。 这样,我们就可以组合出7000多个简体汉字了。 。 在这些代码中,我们还包括数学符号、罗马和希腊字母以及日语假名。 就连原本存在于ASCII中的数字、标点符号、字母都被重新编码成了两个字节长的代码。 ,通常被称为“全角”字符,而原本127以下的字符被称为“半角”字符,这种汉字方案被称为“”。
后来相应的编码方案不能满足应用需求,于是陆续进行了扩展。 首先,干脆不再要求低字节必须是127之后的内码。只要第一个字节大于127,就总是意味着这是一个汉字的开头,无论什么下面是在扩展字符集中。 由此产生的扩展编码方案称为 GBK 标准。 GBK收录了全部内容,同时增加了近2万个新汉字(含繁体字)和符号。 后来少数民族也想用计算机,我们就对其进行了扩展,增加了几千个新的少数民族字符,GBK就被扩展了。 从此,中华民族的文化得以在计算机时代得以传承。 这就带来了一点麻烦:字符串的长度和编码的长度并不完全对应,所以往往会解决中英文混用的问题。 这对中国程序员来说不是问题。 一个有趣的(xiao)函数可以解决这个问题。 另一个稍微大一点的问题是错误的传染性,某个地方丢失一个字节可能会导致后续文章变成乱码!
当各个国家像中国一样拿出自己的编码标准时,没有人理解彼此的编码,也没有人支持其他人的编码。 即使相距仅150海里的中国和台湾也使用相同的代码。 同一语言的兄弟也想出了自己的编码:BIG5。 ISO国际组织实在无法忽视,于是在1991年他们重新创建了一个包含地球上所有文化、所有字母和符号的代码! 他们计划将其称为“-Octet Coded Set”,简称UCS,俗称“”。 他们雄心勃勃,创建了一个包含 65535 个码表的字符集,相信它可以覆盖所有字符。 该套件是 UCS-2。 由于容量严重不足,ISO后来推出了UCS-4解决方案。 简单来说,四个字节代表一个字符,这样我们就可以组合21亿个不同的字符(最高位还有其他用途)。
其背后的想法非常简单,但常常被误解。 它就像一本电话簿,标记了字符和数字之间的映射。 乔尔称它们为“神奇数字”,因为它们可能是随机分配的,没有任何解释。 官方术语是代码点,总是以 U+ 开头。 它不涉及字符如何用字节表示,只是指定了字符对应的数字,仅此而已。 他的编码和传输问题都是用UTF()来定义的,我们通常遇到的就是UTF-8、UTF-16和UTF-32。
2. 汉字编码
它是国际组织制定的一套字符编码方案,可以容纳世界上所有的文字和符号。 使用16位来表示一个字符,总共可以表示216(=65536)个字符。 目前,苹果、惠普、IBM、微软和甲骨文等IT公司都在采用,各个领域都已采用它作为行业标准。 每个国家或地区的 可以在代码网站上找到。 第一个版本1.0.0于1991年发布,至今已经补充了20多次。 截至本文发表时最新版本为2022年9月发布的15.0。1.0.0包含第一批汉字。 回到本文开头的问题,这里的汉字是指广义的汉字。 字符集由中国大陆、香港、日本、朝鲜、韩国、台湾和越南提供。 在此基础上编制了《中日韩统一表意文字》(CJK,该字符集通常称为基本汉字或基本区),其中包括汉字。 20,902,后来增加到 20,976。
以及统一的汉字编码分配
码位范围
码位范围
代码号
字符数
字符类型
第一个字节是0x81~0xA0,最后一个字节是0x40~0xFE(0x7F留空)
$4E02~$72DB(GBK扩展区)
6080
6080
3区,中日韩,笔顺
第一个字节是0xA1~0xA7,最后一个字节是0x40~0xA0(0x7F留空)
(GBK用户区)
第672章
用户区3
第一个字节是0xA1~0xA7,最后一个字节是0xA1~0xFE
-80区
第722章
606
1区,图形符号
第一个字节是0xA8~0xA9,最后一个字节是0x40~0xA0(0x7F留空)
(GBK扩展区)
128
166
5区,图形符号
第一个字节是0xA8~0xA9,最后一个字节是0xA1~0xFE
-80区
124
122
1区,图形符号
第一个字节为0xAA~0xFE,最后一个字节为0x40~0xA0(0x7F留空)
$72DC~$9FBB (GBK扩展区)
$F92C~$FA29(中日韩兼容字)
8160
8145
区域 4,CJK 扩展 A、U 代码序列
第一个字节是0xAA~0xAF,最后一个字节是0xA1~0xFE
(GBK用户区)
第564章
用户区1
第一个字节是0xB0~0xF7,最后一个字节是0xA1~0xFE
$4E00~$9F44
(-80区域)
6768
6763
第二区:CJK、拼音序列
第一个字节是0xF8~0xFE,最后一个字节是0xA1~0xFE
(GBK用户区)
第658章
双字节用户区2
~
(0x30~0x39是二到四字节编码)
$2F00~$2FDF
224
214
康熙激进
~
(0x81~0xFE为三字节编码)
$3400~$4DB5
6530
6530
中日韩扩展名 A
~
(下同编码规则)
$9FA6~$9FEF
74
66
CJK统一汉字(新)
~
~
(U2是二平面)
42711
42711
中日韩扩展 B
~
~
(U2是二平面)
4149
4149
中日韩扩展名 C
~
~
(U2是二平面)
222
222
CJK 扩展 D
~
~
(U2是二平面)
5762
5762
CJK 扩展 E
~
~
(U2是二平面)
7473
7473
CJK 扩展名 F
在过去的 30 年里,已经发布了扩展集来补充 CJK 表意文字的内容。 共发布7个扩展集:扩展A(6582字)、扩展B(42711字)、扩展C(4149字)、扩展区D(222字)、扩展区E(5762字)、扩展区F (7473字),扩展区G(4939字)。 CJK统一汉字基本集的汉字码位范围为U+4E00至U+9FA5。 -2022四字节部分还包括CJK统一汉字U+9FA6至U+9FFF(不含9FB4至9FBB这8个字符); 扩展区A对应字符集的基本多语言平面BMP; 扩展区B至G对应字符集的第二辅助平面,起始码为$20000。 最新的扩展G是2022年9月发布的15.0。15.0增加了4489个新字符,使字数达到字符数,其中包括20个新表情符号和4193个CJK中日韩表意文字。 添加了八个新字符块 - 中日韩统一表意字符扩展 (CJK) A 到 H:
1、1997版2.0版多语言基本集按拼音和部首顺序编译成-80和GBK扩展区(-2022两字节部分),范围从U+4E00到U+9FBB。
2、2000年3.0版本增加了中日韩A,共6582个字,编译成-2022四字节部分,范围从U+3400到U+4DB5。 涉及双字节和四字节编码部分。 王立军指出了三对同形字:(1)U+3B35“㬵”与汉日韩0“角”同形,(2)U+39B3“㘽”与U+36B3同形“㦳”,(3)U+439B“䎛”与U+3588“㖈”形状相同;
3、2001年,3.1版增加了中、日、韩B,共42711个字符(较大的扩展),范围从$20,000到$2A6DF,即9532:8236到9835:F345。 库克指出了八对同形字:(1)U+20457与中日韩的A“㒨”(两个字形)同形,(2)U+2420E与中日韩的A同形“㶷”,(3) U+27144 类似于汉日韩的 0“聁”,多了两个㓰,(4) U+23515 与 U+204F2 形状相同“⿱如杰”,(5) U+249E9 与 U+249BC“⿱⿰目㕚玉”形状相同,(6) U+2A415 与 U+24BD2“⿳殸镀干”形状相同,(7) U+26866 形状相同与U+26842“⿰月东”,(8) U+27EAF 与兼容字“﨣”形状相同;
4、2003年5.2版本增加了中、日、韩C,4149个字符,范围从$2A700到$2B734,即9835:F738到9839:9E36;
5、2010年6.0版本增加了中文、日文、韩文D,222个字符,范围从$2B740到$2B81d,即9839:9F38到B539;
6、2015年8.0版本增加了中文、日文、韩文E,5762个字符,范围从$2B820到$2CEA1,即9839:B632到9933:FE34;
7、2017年10.0版本增加了中文、日文和韩文F,7473个字符,范围从$2CEB0到$2EBE0,即9934:8138到9939:F730;
8、2020版本13.0增加中日韩G,4939字;
9、2021年版本14中,新增中日韩组件,新增838个字符,共计3个字符。 新添加的内容还包括 5 个新脚本,总共 159 个脚本,最后还有 37 个新表情符号。
10、2022年15.0版本新增中日韩H,4192个字符; 该版本新增字符4489个,字符总数达到4193个,新增文字2个,文字总数161个,新增表情符号20个,中日韩表意文字4193个。
12、还有114个字符,又一码依次填入字符0、A、B、C的尾部。
13、“㦳”、“㖈”、“㶷”、“⿱如杰”、“⿱⿰目㕚玉”、“⿳殸镀干”、“⿰月”等十一对同形字向内东”和“﨣”可以被认为是重复的。 最后的总数是...
汉字编码有两套标准:一套是UCS-2,使用两个字节对字符进行编码;一套是UCS-2,采用两个字节对汉字进行编码。 另一种是UCS-4,使用4个字节对字符进行编码。 简体中文和繁体中文总共有7万个汉字,而UCS-2最多可以表示65536个(216=65536),所以它智能地排除了一些几乎不用的汉字,只适用于7万多个常用简体汉字。 为了表示所有汉字,USC-4也是适用的,但现在汉字一般采用UCS-2,只用两个字节进行编码。
品种查询渠道:
汉字对应表:
基本设定对照表: