|
楼主 |
发表于 2003-7-2 07:39:07
|
显示全部楼层
中文環境
FreeBSD Chinese HOWTO
Prev Next
Chapter 3. 中文環境
Table of Contents
3.1. 中文編碼標準
3.2. 基本中文環境的要件
3.3. 國際化與中文化
3.4. 可能的問題
3.5. 什麼是 locale ?
3.1. 中文編碼標準
在電腦開始使用的時候,所有的字都只用 1byte ?韮Υ妫 1byte 包含 8bits,每個 bits 都只能表示 on/off, 也就是 1byte 只能表示 0000 0000 到 1111 1111 的編碼範圍, 只有 256 個編碼空間,這對中文而言,是不夠的。
我們知道中文字在目前常見的電腦上是由兩個位元組(two bytes) 所編碼組成的。 最常見的編碼方式有台灣地區所通行的 Big5 編碼,及大陸地區所使用的 GB 編碼。而且開頭的位元組幾乎都是大於 128 的數值,也就是所謂 non-ASCII 碼的範圍(ASCII 是指小於 128 的編碼)。
字集(Character Set)是一組符號或文字的組合, 而編碼(Encoding)則是將這一組符號或文字以適當的方式編入位元組中, 以便電腦能夠表示與儲存。 目前現有的字集如中文字集、英文字集、日文字集等, 而中文編碼則是選取部份或全部字集中的部分或全部字, 給予一個號碼,如Big5 包含部分中文字集、英文字集、部分日文字集等。
接下?砭褪侨f碼奔騰,眾多中文編碼標準的問題, 目前台灣使用的中文編碼存在許多問題,第一是中文編碼有數種 Big5、CCCII、CNS11643、Big5E、Big5+、ISO 10646、CP950, 每個編碼所包含的中文字數不同,編碼方式也不相同, 而且大部分都沒有標準規格, 第二是常用的 Big5 編碼字數不足。
雖然常用的 Big5 已經使用 2bytes ?肀硎局形淖郑 2bytes = 16bits = 2^16 = 65536 個編碼空間, 以 Big5 的標準而言,為了要和 ASCII 能夠相容,只能使用兩萬多字, 現存的中文字最少在七萬以上,造成許多字在 Big5 的系統下, 無法使用。在加上中文標準繁多,卻又沒有最後的標準規格, 各家?S商所?做產品也就未必相容。 最明顯的例子就是日文平假片假名, 在這些中文編碼中?K不是每個都包含, 當遇到所謂的「Big5日文」時,就會產生許多問題。
3.1.1. Big Five
如不去考慮特殊符號,及後?淼钠邆擴充字, TW-BIG5 的排序方式如下:
*
將所有的字分成兩大群: 常用字區與次常用字區
*
每一個字區分別用筆畫?砼判
*
同一個筆畫的字,依部首?砼
TW-BIG5 每個字由兩個位元組組成,其第一位元組編碼範圍為 0xA1 ... 0xF9, 第二位元組編碼範圍為 0x40 ... 0x7E 與 0xA1 ... 0xFE,總計收入 13868 個字 (包括 5401 個常用字、7652 個次常用字、7 個擴充字、以及 808 個各式符號),其中可以大致?分為以下幾個字區:
Table 3-1. TW-BIG5 字區與編碼範圍
第一位元組 第二位元組 字區 制定
A1..A2 40..7E, A1..FE 各種符號區 1984
A3 40..7E, A1..BF 各種符號區 (包括標點符號、ASCII 全形符號、注音符號等) 1984
A3 E1 歐元符號 CP950
A4..C5 40..7E, A1..FE 常用字區 1984
C6 40..7E 常用字區 1984
C6 A1..FE 罕用符號區 倚天
C7 40..7E, A1..FE 罕用符號區 (包括日文、俄文等) 倚天
C8 40..7E, A1..D3 罕用符號區 (包括俄文、輸入法特殊符號等) 倚天
C9..F8 40..7E, A1..FE 次常用字區 1984
F9 40..7E, A1..D5 次常用字區 1984
F9 D6..DC 七個擴充字 倚天
F9 DD..FE 表格符號區 倚天
Table 3-2. 七個擴充字
擴充字 BIG5 碼 Unicode 碼 BIG5_1984 的同義字
碁 0xF9D6 0x88CF 棋
銹 0xF9D7 0x92B9 鏽
裏 0xF9D8 0x7CA7 裡
墻 0xF9D9 0x58BB ?
恒 0xF9DA 0x6052 ?a
粧 0xF9DB 0x7881 妝
嫺 0xF9DC 0x5AFA 嫻
3.1.2. CNS11643
CNS11643 中文標準交換碼, 一般簡稱 CNS 碼或 CNS11643 , 因中央標準局 公?鸭靶抻喼柔岫卸版本,一般稱為 CNS11643-1986 版(1986公告版)及 CNS11643-1992 版(1992年修訂版), 此二個版本之差?僅在於其所編定之字數不同。 75 年公告之 CNS11643 定義 13,051個?h字,81 年修訂版擴編為48,027 個?h字。 75 年公告之 CNS11643 名稱為「通用?h字標準交換碼」,於 81 年擴充後修訂 CNS11643 名稱為「中文標準交換碼」。
兩個電腦系統要交換資料時,以兩方皆認可之碼傳輸, 此稱為交換碼,交換碼之設計須符合國際標準。 因此一般在電腦內部處理時使用內碼,而在傳輸時, 再轉換為標準交換碼。
WWW: http://www.cns11643.gov.tw/
3.1.3. GB
在中國,中文信息編碼由政府負責制定?K監督?施。 這是為了保證對於所有的系統中文的編碼都是一致的,能夠互相進行操作。 ?挠嬎銠C的應用開始,已經頒布了多種中文信息編碼標準, 常用的是 GB2312-1980,GB12345,GB13000(GBK),以及最新標準 18030。 值得一提的是,最新的 GB18030 標準將要作為?娭茦藴蕦?行,所有不支持 GB18030 標準的軟體將不能作為產品的出售。
? GB2312-1980 編碼開始,?h字都是採用雙字?編碼。 為了與系統中基本的 ASCII 字符集區分開, 所有?h字編碼的每個字?的第一位元都是1。例如:"啊" 字的編碼為 0xB0A1。
Table 3-3. GB 的?h字編碼規則
編碼 第一個字? 第二個字? 第三個字? 第四個字?
GB2312 0xB0 - 0xF7 0xA0 - 0xFE
GBK 0x81 - 0xFE 0x40 - 0xFE
GB18030 的雙字? 0x81 - 0xFE 0x40 - 0x7E, 0x80 - 0xFE
GB18030 的四字? 0x81 - 0xFE 0x30 - 0x39 0x81 - 0xFE 0x30 - 0x39
3.1.4. Unicode/ISO 10646
Unicode (Universal Multiple Octet Coded Character Set), Unicode 國際標準組織於1984年4月成立 IOS / IEC JTC1 / SC2 / WG2工作組,針對各國文字、 符號進行統一性編碼,1991年美國跨國公司成立Unicode Consortium, ?K於1991年10月與WG2達成協議,採用同一編碼字集 。 目前Unicode是採用16 bit之編碼架構,其字集內容與ISO 10646之 BMP(Basic Multilingual Plane)相同。
Unicode (Unicode Consortium)?K於1992年6月通過 DIS(Draft International Standard),目前版本為Unicode v2.0 於1996年公?眩 內容包含符號6811、 ?h字20902、韓文拼音11172、 造字區6400,保留20249共65534個碼位 。
目前碼位空間為 U+0000 到 U+10FFFF,共有 1,114,112 個空間。
Unihan3.2 包含超過七萬個 CJK 字。
ISO 10646 HK WWW: http://www.iso10646hk.net/
WWW: http://www.unicode.org/
Prev Home Next
中文環境 Up 基本中文環境的要件 |
|