汉字世界(9) 中日韩统一汉字

作者:kylelong  于 2009-11-12 05:10 发表于 最热闹的华人社交网络--贝壳村

作者分类:文学文字|通用分类:其它日志|已有10评论

关键词:

中日韩统一汉字,标识为Unicode,也叫中日韩统一表意文字,英语:CJK Unified Ideographs(CJK就是中日韩的英文首字母),也称统汉字(Unihan)。1990年代初,ISO 10646制订时,来自台湾的代表提出相同形式的中日韩汉字给以统一编码(Unify,ISO术语称为认同),可以大量节省编码空间,获其他代表接纳。

中日韩统一表意文字,目的是要把分别来自中文、日文、韩文、越文中,本质相同、形状一样或稍异的表意文字(主要为汉字,但也有仿汉字如方块壮字、日本国字、韩国独有汉字、越南的喃字)于ISO 10646及Unicode标准内赋予相同编码。越南文后来加入此计划,所以亦有 CJKV(中日韩越统一表意文字)的称呼。Unicode亦开始收录越汉字--喃字。有关Unihan Code Charts的信息,见网页:

http://www.unicode.org/
http://www.unicode.org/charts/unihan.html。

其中,ISO 10646 版本1993,相当于Unicode 版本1.0,收录汉字20,914个;ISO 10646 版本2003第八修订版,相当于Unicode 版本5.2,收录汉字74,525个。

最初期的统一汉字(20,902字)字源来自以下字集:中国大陆的G源、台湾的T源、日本的J源以及韩国的K源。此外,还有扩展A区,包含有6,582个新的汉字,位置在 U+3400-U+4DB5;扩展B区,包含有42,711个新的汉字,位置在 U+20000-U+2A6D6。另外,在 U+2F800-U+2FA1D 的位置,放了542个来自台湾的兼容汉字;扩展C区,收录4,149个汉字,包括来自中国大陆、澳门、台湾、日本、越南等尚未被编码的汉字。位置在 U+2A700-U+2B734;扩展D区,编码范围为 U+2B740-U+2B81E,编码223个汉字;扩展E区,即之前的扩展D区计划收录的汉字,因为急用汉字(UNC)被放置在扩展D区,所以之前计划的扩展D区改为扩展E区。

已统一的汉字,原则上ISO 10646只对字(Character),而非字形(Glyph)编码。同一字各地可使用自己的标准写法。使用HTML标示同一编码的字在不同地区中的写法(但只是读者电脑提供的字型,未必代表该地区的标准写法)。没有统一的汉字,有些字只是同一字在不同地区的写法,理应统一,但因为字源分离原则而只好分开编码。值得注意的是字源分离原则由“Unicode联盟决定把不正统的编入位于基本多文种平面的 ‘相容表意文字区’(Compatibility Ideographs)”时起废弃,原因是CNS中有太多字形非常接近,按 Unicode 标准应该统一的字。这些字只有正统的会编入正式字集(包括扩展A、B、C区)中,不正统的编入位于“第二辅助平面”的“相容表意文字补充区”(Compatibility Ideographs Supplement)中。


为什么要使用Unicode文字编码呢?

Windows系统的电脑中,所有文件的汉字都是采用8、16、32等进制数据进行编码的(汉字无疑是世界上最复杂的文字)。当汉字显示出来时(暂且不考虑如何输入的),Windows首先将文本数据转换到它内部使用的编码格式:Unicode,然后按照文本的Unicode去字体文件中查找字体图像,最后将图像显示到窗口上。所谓编码,就是用数字表示字符,例如用D7D6表示“字”。当然,编码还意味着约定,即大家都认可。

在Unicode被广泛使用前,有多少种语言、文字,就可能有多少种文字编码方案。一种文字也可能有多种编码方案。我们可以看到记事本支持4种编码格式:ANSI、Unicode、Unicode big endian、UTF-8。Unicode、Unicode big endian、UTF-8,其实它们更准确的名称应该是UTF-16LE(Little Endian)、UTF-16BE(Big Endian)和UTF-8,它们是基于Unicode的不同编码方案。

这里要涉及代码页(Code Page)这个古老的专业术语,据说是IBM公司首先使用的。代码页和字符集的含义基本相同,代码页规定了适用于特定地区的字符集合,和这些字符的编码。可以将代码页理解为字符和字节数据的映射表。Windows为自己支持的代码页都编了一个号码。例如代码页936就是简体中文 GBK,代码页950就是繁体中文 Big5。代码页的概念比较简单,就是一个字符编码方案。但要说清楚Windows的ANSI代码页,就要从Windows的区域(Locale)说起了。

微软为了适应世界上不同地区用户的文化背景和生活习惯,在Windows中设计了区域(Locale)设置的功能。Local是指特定于某个国家或地区的一组设定,包括代码页,数字、货币、时间和日期的格式等。在Windows内部,其实有两个Locale设置:系统 Locale和用户Locale。系统Locale决定代码页,用户Locale决定数字、货币、时间和日期的格式。我们可以在控制面板的“区域和语言选项”中设置系统Locale和用户Locale:每个Locale都有一个对应的代码页。系统Locale对应的代码页被作为Windows的默认代码页。在没有文本编码信息时,Windows按照默认代码页的编码方案解释文本数据。这个默认代码页通常被称作ANSI代码页(ACP)。

在Windows 2000以后,Windows统一采用UTF-16作为内部字符编码。现在,安装一个代码页就是安装一张代码页转换表。通过代码页转换表,Windows 既可以将代码页的编码转换到UTF-16,也可以将UTF-16转换到代码页的编码。代码页转换表的具体实现可以是一个以nls为后缀的数据文件,也可以是一个提供转换函数的动态链接库。有的代码页是不需要安装的。例如:Windows将UTF-7和UTF-8分别作为代码页65000和代码页 65001。UTF-7、UTF-8和UTF-16都是基于Unicode的编码方案。它们之间可以通过简单的算法直接转换,不需要安装代码页转换表。

在安装过一个代码页后,Windows就知道怎样将该代码页的文本转换到Unicode文本,也知道怎样将Unicode文本转换成该代码页的文本。其实,如果全世界人民在计算机刚发明时就统一采用Unicode作为字符编码,那么代码页就没有存在的必要了。可惜在 Unicode被发明前,世界各国人民都发明并使用了各种字符编码方案。所以,Windows必须通过代码页支持已经被广泛使用的字符编码。从这种意义看,代码页主要是为了兼容现有的数据、程序和习惯而存在的。

再谈Unicode

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字 0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、 UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

Unicode字符集可以简写为UCS(Unicode Character Set)。早期的Unicode标准有UCS-2、UCS-4的说法。UCS-2用两个字节编码,UCS-4用4个字节编码。UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个平面(plane)。每个平面根据第3个字节分为256行(row),每行有256个码位(cell)。group 0的平面0被称作BMP(Basic Multilingual Plane)。将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。

先看一些数字:每个平面有2^16=65536个码位。Unicode计划使用了17个平面,一共有 17*65536=1114112个码位。其实,现在已定义的码位只有238605个,分布在平面0、平面1、平面2、平面14、平面15、平面16。其中平面15和平面16上只是定义了两个各占65534个码位的专用区(Private Use Area),分别是0xF0000-0xFFFFD和0x100000-0x10FFFD。所谓专用区,就是保留给大家放自定义字符的区域,可以简写为 PUA。

平面0也有一个专用区:0xE000-0xF8FF,有6400个码位。平面0的0xD800-0xDFFF,共2048个码位,是一个被称作代理区(Surrogate)的特殊区域。它的用途将在4.2节介绍。

238605-65534*2-6400-2408=99089。余下的99089个已定义码位分布在平面0、平面 1、平面2和平面14上,它们对应着Unicode目前定义的99089个字符,其中包括71226个汉字。平面0、平面1、平面2和平面14上分别定义了52080、3419、43253和337个字符。平面2的43253个字符都是汉字。平面0上定义了27973个汉字。

UCD是Unicode字符数据库(Unicode Character Database)的缩写。UCD由一些描述Unicode字符属性和内部关系的纯文本或html文件组成。UCD中的文本文件大都是适合于程序分析的Unicode相关数据。其中的html文件解释了数据库的组织,数据的格式和含义。UCD中最庞大的文件无疑就是描述汉字属性的文件Unihan.txt。在UCD 5.0,0中,Unihan.txt文件大小有28,221K字节。Unihan.txt中包含了很多有参考价值的索引,例如汉字部首、笔划、拼音、使用频度、四角号码排序等。这些索引都是基于一些比较权威的辞典,但大多数索引只能检索部分汉字。

以上这些阐述,我也不是很明白,无非是要表明一点,即CJKV汉字(中日韩越统一表意文字),只是一个电脑汉字字符的编码,而且已经得到全世界的公认。这个编码为世界各国使用汉字的人们提供了学习和交流的平台,但与任何政治的、感情的、传统的因素无关。

(本专辑全部结束)


(收集)
1

高兴

感动

同情

搞笑

难过

拍砖

支持

鲜花

发表评论 评论 (10 个评论)

1 回复 hu18 2009-11-12 05:45
蛤蟆跳井——不懂。
1 回复 kylelong 2009-11-12 05:47
hu18: 蛤蟆跳井——不懂。
1 回复 孤舟独钓 2009-11-12 06:03
请教龙老师:
"琞"这个字用什么输入法才可在电脑上打出来?
2 回复 kylelong 2009-11-12 06:14
孤舟独钓: 请教龙老师:
"琞"这个字用什么输入法才可在电脑上打出来?
琞,我用紫光拼音。
3 回复 孤舟独钓 2009-11-12 06:36
kylelong: 琞,我用紫光拼音。
谢谢!
0 回复 kylelong 2009-11-12 06:51
孤舟独钓: 谢谢!
不客气。
1 回复 DW02 2009-11-12 21:10
学习!

好难哦。  幸亏不用考试!
1 回复 kylelong 2009-11-12 22:22
DW02: 学习!

好难哦。  幸亏不用考试!
了解一下,比不了解好啊。
2 回复 zhousx18 2009-11-13 11:51
统一什么呀,日韩如要使用中国的汉字,必须尊重中国的汉字文化,不允许自创汉字,使用时按照一个字一次收取一元人民币的价格。
1 回复 kylelong 2009-11-13 12:27
zhousx18: 统一什么呀,日韩如要使用中国的汉字,必须尊重中国的汉字文化,不允许自创汉字,使用时按照一个字一次收取一元人民币的价格。
那中国发了。

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

关于本站 | 隐私政策 | 免责条款 | 版权声明 | 联络我们 | 刊登广告 | 转手机版 | APP下载

Copyright © 2001-2013 海外华人中文门户:倍可亲 (http://www.backchina.com) All Rights Reserved.

程序系统基于 Discuz! X3.1 商业版 优化 Discuz! © 2001-2013 Comsenz Inc. 更新:GMT+8, 2024-4-2 17:12

倍可亲服务器位于美国圣何塞、西雅图和达拉斯顶级数据中心,为更好服务全球网友特统一使用京港台时间

返回顶部