|
Unicode编码
国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国文字、符号进行统一性编码。1991年美国跨国公司成立Unicode Consortium,并于1991年10月与WG2达成协议,采用同一编码字集。目前Unicode是采用16位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)相同。Unicode于1992年6月通过DIS(Draf International Standard),目前版本V2.0于1996公布,内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留20249个,共计65534个。
随着国际互联网的迅速发展,要求进行数据交换的需求越来越大,不同的编码体系越来越成为信息交换的障碍,而且多种语言共存的文档不断增多,单靠代码页已很难解决这些问题,于是UNICODE应运而生。
UNICODE有双重含义,首先UNICODE是对国际标准ISO/IEC 10646编码的一种称谓(ISO/IEC 10646是一个国际标准,亦称大字符集,它是ISO于1993年颁布的一项重要国际标准,其宗旨是全球所有文种统一编码),另外它又是由美国的 HP、Microsoft、IBM、Apple等大企业组成的联盟集团的名称,成立该集团的宗旨就是要推进多文种的统一编码。
UNICODE同现在流行的代码页最显著不同点在于:UNICODE是两字节的全编码,对于ASCII字符它也使用两字节表示。代码页是通过高字节的取值范围来确定是ASCII字符,还是汉字的高字节。如果发生数据损坏,某处内容破坏,则会引起其后汉字的混乱。UNICODE则一律使用两个字节表示一个字符,最明显的好处是它简化了汉字的处理过程。
UNICODE使用平面来描述编码空间,每个平面分为256行,256列,相对于两字节编码的高低两个字节。
UNICODE的第一个平面,称为Basic Multilingual Plane(基本多文种平面),简称BMP,由于BMP仅用两个字节表示,所以倍受青睐。

图2.1: BMP的最新概貌图
其中 A_ZONE为拼音文字编码区,拉丁文、阿拉伯文、日文的平假名及片假名等都在此区编码。
CJK Extension A 和CJK为汉字区域共计27487个汉字。
Y1即彝文,位于O-ZONE保留待将来使用。
Hangul即韩文。
EUDC为用户私有区,用户可以根据需要自己定义此区的编码。
R-ZONE为限制使用区,一些兼容字符、特殊字符均放在此区。
UNICODE定义BMP中的D800-DFFF为代理区(Surrogate Zone),其中D800-D8FF为高半代理(high surrogate), DC00-DFFF为低半代理(low surrogate)。从两个区域分别取一个编码,组成一个4字节的代理对来表示一个编码字符,此即为UTF-16。利用UTF-16机制,UNICODE扩充了1024*1024个字符,相应于OO-OF平面,并且将02平面分配给了CJK Extension B。Microsoft在Windows 2000已实现了 UTF-16。
六、 维文和维文编码
1、Unicode编码和阿拉伯文编码
多年来,计算机普遍采用美国信息交换标准代码(American Standard Code for Information Interchange,简称ASCII码)来表示字符,这些字符可以是字母,数字,标点符号和控制符。用这种编码来表示英文在内的字符不成问题的,但要表示其它语言文字如,阿拉伯文,中文,日文,维文,哈文…必须进行扩充。在1987年,Xerox Palo Alto研究中心的Joe Becker和Lee Collins,以及Apple公司的Mark Davis试图研究一种适用于多文种处理的字符编码。这种编码很快就得到了许多大公司的支持。这些公司都派代表参加Unicode研究组,Unicode的研究得到了较快的进展。由于Unicode集团的成员都是世界上的主要系统及软件制造商,所以Unicode很快就成为事实上的工业标准。
基于Unicode的系统允许使用65000个不同的字符,足以善盖世界所有语言的所有字母,外加数千种符号。具体安排如下:

其中,General Scripts区单独收录了19种语言文字,包括ASCII,Latin1,Greek,Cyrillic,Armenian,Hedrew,Arabic,Devanagari,Bengali
,Gurmukhi,Gujarati,Oriya,Tamil,Telugu,Kannada,Malayalam,Thai,Lao,
Tibetan,Georgian等语言文字之外,还包括汉语,日语和朝鲜语中的所有大量字符。
Unicode是一种定长的2B多文种字符集编码,它试图善盖现有的有关国家和地区的标准,包括GB2312,CNS11643,JIS 0208和KSC 5601等。Unicode可以表示混合文字资料,也可以保证以前的ISO 10646,如:

这些因素决定了Unicode的设计目标,具体内容如下:
①简单性 Unicode代码是等长的(16b),每两个字节表示一个字符;
②完整性 Unicode要善盖文本中使用的所有字符;
③单义性 每个代码明确地表示一个字符。
④正确性 在进行与已有字符编码标准间的转换时,不应该丢失任何原文数据。
⑤保真性
2、Unicode的维文编码技术
维文属于阿尔泰语系突厥语组西匈语支,维文以及在中国新疆地区使用的哈萨克,克尔克孜等文种都借用了阿拉伯语和部分波斯文字母。
维文由32个字母组成,而且有120多个字符形式,但它的校对和出现的问题不象中、英文,例如:书写方向相反,维文字的自动选型,维文语法的多变形等。其特点如下:
⑴ 维文的书写方向为从右到左,行向为从上而下。维文的字母有四种不同的书写形式:尾部与下一个字母相连的首写形式、首尾与相邻字母连接的中间形式、首部与上一个字母相连的尾写形式、和首尾与相邻字母都不相连接的独立形式,并且根据字母字中的位置来确定使用何种形式。而汉字用同一大小的形式,英文用大、小两种形式书写。
⑵ 维文的字是由一个或多个字母组成。根据书写规则,这些字母可能前后相连形成一个 或几个连体字母段。不但字母宽度不同,而且有时候还增加额外的连字符。如:
⑶用标点符号方向相反。如:

以上这些特点给文对编码带来了一定的困难,但阿拉伯文已有的编码提供了不少信息。
如上论述可知,Unicode中不应该出现重复字符。维文以及在中国新疆地区使用的哈萨克,克尔克孜等文种都借用了阿拉伯语和部分波斯文字母,所以编码时应该从阿拉伯语编码的基础上扩充。因为阿拉伯语已经被Unicode录入。首先看看阿拉伯语目前的编码规则:
阿拉伯语文在Unicode中有基本阿拉伯语(U+0060 to U+006FF)和扩充阿拉伯语(U+FE70 to U+FEFF)两种格式。
其中,不但包含所有阿拉伯语字符和符号以外,还有一定的空间给予用户扩充。
相关资料请访问:
http://www.unicode.org/unicode/standard/translations/uyghur.html
现在Unicode 3.1已经从阿拉伯文基础上增加维文(Unicode 3.1本身包含慰问),主要录入依据是简单性,完整性,单义性,正确性,保真性。具体如下:



Unicode编码布局
0000..007F; Basic Latin
0080..00FF; Latin-1 Supplement
0100..017F; Latin Extended-A
0180..024F; Latin Extended-B
0250..02AF; IPA Extensions
02B0..02FF; Spacing Modifier Letters
0300..036F; Combining Diacritical Marks
0370..03FF; Greek and Coptic
0400..04FF; Cyrillic
0500..052F; Cyrillic Supplementary
0530..058F; Armenian
0590..05FF; Hebrew
0600..06FF; Arabic
0700..074F; Syriac
0780..07BF; Thaana
0900..097F; Devanagari
0980..09FF; Bengali
0A00..0A7F; Gurmukhi
0A80..0AFF; Gujarati
0B00..0B7F; Oriya
0B80..0BFF; Tamil
0C00..0C7F; Telugu
0C80..0CFF; Kannada
0D00..0D7F; Malayalam
0D80..0DFF; Sinhala
0E00..0E7F; Thai
0E80..0EFF; Lao
0F00..0FFF; Tibetan
1000..109F; Myanmar
10A0..10FF; Georgian
1100..11FF; Hangul Jamo
1200..137F; Ethiopic
13A0..13FF; Cherokee
1400..167F; Unified Canadian Aboriginal Syllabics
1680..169F; Ogham
16A0..16FF; Runic
1700..171F; Tagalog
1720..173F; Hanunoo
1740..175F; Buhid
1760..177F; Tagbanwa
1780..17FF; Khmer
1800..18AF; Mongolian
1E00..1EFF; Latin Extended Additional
1F00..1FFF; Greek Extended
2000..206F; General Punctuation
2070..209F; Superscripts and Subscripts
20A0..20CF; Currency Symbols
20D0..20FF; Combining Diacritical Marks for Symbols
2100..214F; Letterlike Symbols
2150..218F; Number Forms
2190..21FF; Arrows
2200..22FF; Mathematical Operators
2300..23FF; Miscellaneous Technical
2400..243F; Control Pictures
2440..245F; Optical Character Recognition
2460..24FF; Enclosed Alphanumerics
2500..257F; Box Drawing
2580..259F; Block Elements
25A0..25FF; Geometric Shapes
2600..26FF; Miscellaneous Symbols
2700..27BF; Dingbats
27C0..27EF; Miscellaneous Mathematical Symbols-A
27F0..27FF; Supplemental Arrows-A
2800..28FF; Braille Patterns
2900..297F; Supplemental Arrows-B
2980..29FF; Miscellaneous Mathematical Symbols-B
2A00..2AFF; Supplemental Mathematical Operators
2E80..2EFF; CJK Radicals Supplement
2F00..2FDF; Kangxi Radicals
2FF0..2FFF; Ideographic Description Characters
3000..303F; CJK Symbols and Punctuation
3040..309F; Hiragana
30A0..30FF; Katakana
3100..312F; Bopomofo
3130..318F; Hangul Compatibility Jamo
3190..319F; Kanbun
31A0..31BF; Bopomofo Extended
31F0..31FF; Katakana Phonetic Extensions
3200..32FF; Enclosed CJK Letters and Months
3300..33FF; CJK Compatibility
3400..4DBF; CJK Unified Ideographs Extension A
4E00..9FFF; CJK Unified Ideographs
A000..A48F; Yi Syllables
A490..A4CF; Yi Radicals
AC00..D7AF; Hangul Syllables
D800..DB7F; High Surrogates
DB80..DBFF; High Private Use Surrogates
DC00..DFFF; Low Surrogates
E000..F8FF; Private Use Area
F900..FAFF; CJK Compatibility Ideographs
FB00..FB4F; Alphabetic Presentation Forms
FB50..FDFF; Arabic Presentation Forms-A
FE00..FE0F; Variation Selectors
FE20..FE2F; Combining Half Marks
FE30..FE4F; CJK Compatibility Forms
FE50..FE6F; Small Form Variants
FE70..FEFF; Arabic Presentation Forms-B
FF00..FFEF; Halfwidth and Fullwidth Forms
FFF0..FFFF; Specials
10300..1032F; Old Italic
10330..1034F; Gothic
10400..1044F; Deseret
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D400..1D7FF; Mathematical Alphanumeric Symbols
20000..2A6DF; CJK Unified Ideographs Extension B
2F800..2FA1F; CJK Compatibility Ideographs Supplement
E0000..E007F; Tags
F0000..FFFFF; Supplementary Private Use Area-A
100000..10FFFF; Supplementary Private Use Area-B
0000..007F; Basic Latin
0080..00FF; Latin-1 Supplement
0100..017F; Latin Extended-A
0180..024F; Latin Extended-B
0250..02AF; IPA Extensions
02B0..02FF; Spacing Modifier Letters
0300..036F; Combining Diacritical Marks
0370..03FF; Greek and Coptic
0400..04FF; Cyrillic
0500..052F; Cyrillic Supplementary
0530..058F; Armenian
0590..05FF; Hebrew
0600..06FF; Arabic
0700..074F; Syriac
0780..07BF; Thaana
0900..097F; Devanagari
0980..09FF; Bengali
0A00..0A7F; Gurmukhi
0A80..0AFF; Gujarati
0B00..0B7F; Oriya
0B80..0BFF; Tamil
0C00..0C7F; Telugu
0C80..0CFF; Kannada
0D00..0D7F; Malayalam
0D80..0DFF; Sinhala
0E00..0E7F; Thai
0E80..0EFF; Lao
0F00..0FFF; Tibetan
1000..109F; Myanmar
10A0..10FF; Georgian
1100..11FF; Hangul Jamo
1200..137F; Ethiopic
13A0..13FF; Cherokee
1400..167F; Unified Canadian Aboriginal Syllabics
1680..169F; Ogham
16A0..16FF; Runic
1700..171F; Tagalog
1720..173F; Hanunoo
1740..175F; Buhid
1760..177F; Tagbanwa
1780..17FF; Khmer
1800..18AF; Mongolian
1E00..1EFF; Latin Extended Additional
1F00..1FFF; Greek Extended
2000..206F; General Punctuation
2070..209F; Superscripts and Subscripts
20A0..20CF; Currency Symbols
20D0..20FF; Combining Diacritical Marks for Symbols
2100..214F; Letterlike Symbols
2150..218F; Number Forms
2190..21FF; Arrows
2200..22FF; Mathematical Operators
2300..23FF; Miscellaneous Technical
2400..243F; Control Pictures
2440..245F; Optical Character Recognition
2460..24FF; Enclosed Alphanumerics
2500..257F; Box Drawing
2580..259F; Block Elements
25A0..25FF; Geometric Shapes
2600..26FF; Miscellaneous Symbols
2700..27BF; Dingbats
27C0..27EF; Miscellaneous Mathematical Symbols-A
27F0..27FF; Supplemental Arrows-A
2800..28FF; Braille Patterns
2900..297F; Supplemental Arrows-B
2980..29FF; Miscellaneous Mathematical Symbols-B
2A00..2AFF; Supplemental Mathematical Operators
2E80..2EFF; CJK Radicals Supplement
2F00..2FDF; Kangxi Radicals
2FF0..2FFF; Ideographic Description Characters
3000..303F; CJK Symbols and Punctuation
3040..309F; Hiragana
30A0..30FF; Katakana
3100..312F; Bopomofo
3130..318F; Hangul Compatibility Jamo
3190..319F; Kanbun
31A0..31BF; Bopomofo Extended
31F0..31FF; Katakana Phonetic Extensions
3200..32FF; Enclosed CJK Letters and Months
3300..33FF; CJK Compatibility
3400..4DBF; CJK Unified Ideographs Extension A
4E00..9FFF; CJK Unified Ideographs
A000..A48F; Yi Syllables
A490..A4CF; Yi Radicals
AC00..D7AF; Hangul Syllables
D800..DB7F; High Surrogates
DB80..DBFF; High Private Use Surrogates
DC00..DFFF; Low Surrogates
E000..F8FF; Private Use Area
F900..FAFF; CJK Compatibility Ideographs
FB00..FB4F; Alphabetic Presentation Forms
FB50..FDFF; Arabic Presentation Forms-A
FE00..FE0F; Variation Selectors
FE20..FE2F; Combining Half Marks
FE30..FE4F; CJK Compatibility Forms
FE50..FE6F; Small Form Variants
FE70..FEFF; Arabic Presentation Forms-B
FF00..FFEF; Halfwidth and Fullwidth Forms
FFF0..FFFF; Specials
10300..1032F; Old Italic
10330..1034F; Gothic
10400..1044F; Deseret
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D400..1D7FF; Mathematical Alphanumeric Symbols
20000..2A6DF; CJK Unified Ideographs Extension B
2F800..2FA1F; CJK Compatibility Ideographs Supplement
E0000..E007F; Tags
F0000..FFFFF; Supplementary Private Use Area-A
100000..10FFFF; Supplementary Private Use Area-B
最近Unicode组织推出了Unicode 4.0版本,从Unicode 3.1的基础上增加了阿拉伯文有关的19个字符,其中包括几个维文字符。具体安排如下:

[ 本贴由 独立寒秋 于 2003-11-10 03:49 最后编辑 ] |
|