國內外中文碼介紹

□ CNS 14643 中文標準交換碼     □ EUC 碼     □ UNICODE 與 ISO 10646 漢字集碼     □ BIG-5 碼     □ BIG-5E 碼     □ 電信碼     □ GB2312      □ GBK     □ Big-5 碼香港增補字符集 (zh_HK.hkbig5)

 

CNS 14643 中文標準交換碼

民國69年9月行政院國家科學委員會(以下簡稱「國科會」)邀集國內編碼學者、專家於溪頭開會,達成初步原則,並報請行政院核定《國家中文資訊標準交換碼編碼原則》。70年9月2日行政院函令國科會邀集教育部、中央標準局及行政院主計處電子處理資料中心組成專案作業小組,依據前述核定原則積極推動中文編碼工作。71年7月專案作業小組曾編定常用中文字碼一種,但所收字數不夠;72年5月9日「行政院資訊推動小組」再次確立編碼方式,隨即於該月12日組成編碼技術作業小組,針對既定的編碼原則研討編碼細則,10月底完成《通用漢字標準交換碼》,共收錄了13,053個中文字,並決議試用兩年;當時使用最普遍的中文內碼Big5,其字集即取材於此。

試用期滿後,國科會與主計處於74年8月邀集相關單位與業者組成技術小組,檢討試用結果、修訂編碼原則後重編《通用漢字標準交換碼》,75年3月獲行政院核定,正式公布實施;同年8月獲中央標準局審定頒布為國家標準,編號為「CNS 11643」,共收錄13,051個中文字,分屬第一及第二字面。CNS 11643第一版公布後,因13,051個中文字無法滿足各業務電腦作業所需,因而紛紛自行造字;於是,主計處電子處理資料中心彙整各機關自造字,於77年公布編碼於第十四字面使用者加字區的常用自造字6,148個。

為因應各界對擴大中文字元集的需要,中央標準局於民國79年委託財團法人資訊工業策進會進行 CNS 11643 擴編事宜。CNS 11643第二版於81年5月公佈,更名為「中文標準交換碼」(Chinese Standard Interchange Code,CSIC);實際編碼由原來的2個字面13,051個字大幅擴編為7個字面48,027個字。CNS 11643為我國中文資訊處理與交換的基礎,隨著戶政系統電腦作業上線提供服務,民眾姓名用字的迅速增加,以及與 ISO/IEC 10646 字集同步化的需求,民國92年初標準檢驗局(原「中央標準局」)委託財團法人中文數位化技術推廣基金會再度擴編 CNS 11643。為了一勞永逸解決可編碼字面容量飽和的問題,CNS 11643第三版將編碼空間由第一版所定的16字面增加到80個字面,實際編碼也由7個字面48,027個字擴編為15個字面約十萬個字。

CNS11643 遵循 ISO/IEC 2022 七位元組延伸編碼格式,採兩位元組編碼,依 ISO/IEC 2022 的規定,CNS 正規字元碼每一位元組編碼空間只有8,836個碼位,明顯無法因應數以萬計的中文字編碼需求;因此,CNS 11643採用多字面編碼結構,並藉助 ISO/IEC 2022 所規定的逸出順序和調用控制符來切換字面。由於不同字面的相同正規字元碼代表不同的中文字(例如:第1字面的字元碼 454A 為中文字「日」,而第2字面的字元碼454A卻是中文字「碇」),因此 CNS 11643 第三版另外規定了延伸字元碼以做為字元的唯一字元碼。

CNS 11643第三版總共80個字面,其編碼空間總計為706,880個碼位,但目前實際收容字元者僅前15個字面。第一字面2121~4243共編碼883個符號,4321~7D4B 共編碼5,401個中文字,包括教育部《常用國字標準字體表》4,808字,以及取材自國中小教科書的常用字593字;第二字面2121~7244共編碼7,650個教育部《次常用國字標準字體表》及教育部《罕用國字標準字體表》中使用頻率較高的中文字;第三字面2121~672A共編碼6,276個教育部《次常用國字標準字體表》、教育部《罕用國字標準字體表》中使用頻率較高的中文字及香港地區及美國國會圖書館用字;第四字面2121~6E5C共編碼7,298個教育部《罕用國字標準字體表》中的罕用字及戶政用字、資訊業界用字;第五字面2121~7C51共編碼8,603個教育部《罕用國字標準字體表》中的其餘罕用字;第六字面2121~647A共編碼6,388個教育部《異體字國字標準字體表》總筆畫數不超過14畫且未收錄於前五個字面者;第七字面2121~6655共編碼647A 6,388個教育部《異體字國字標準字體表》未收錄於前六個字面者。

EUC 碼

「EUC 碼」是 UNIX 作業系統使用的內碼系統(Extend Unix Code,EUC),字碼長度4 BYTE(位元組),編碼空間大,可滿足全國人民戶籍登記作業需求,故為全國戶役政單位所採用。共編訂16個字面:

第一字面:8EA1 A1A1-FEFE

第二字面:8EA2 A1A1-FEFE

...

第十五字面8EAF A1A1-FEFE

長度雖與 CNS 11643「中文標準交換碼」不同,但卻採用了 CNS 11643 碼(以下簡稱 CNS)之編碼架構及所有字集,可以一對一的對應。

EUC 碼的 1st byte「8E」為固定值(以下均為16進位),2nd byte 為 A0+CNS 字面數,3rd byte 為 80+CNS high byte,4th byte 為 80+CNS low byte;所以,EUC 碼轉換 CNS 碼時,不需以對照表逐筆比對,只需取得 EUC 碼 2nd byte 中的 CNS 字面數,再將 3rd byte 及 4th byte 的 High Bit 改設為"0",取消中、英文識別碼即可。例:EUC 碼 8EAFA1B0,取得 2nd byte “AF"的”F”,3rd byte “A1”的 High Bit 改設為"0"後的值是”21”、4th byte “B0"的 High Bit 改設為"0"後的值是”30” (也可用 A1B0 減 8080);轉換後,EUC「8EAFA1B0」就是 CNS 第十五字面的 2130 (通常以 15-2130 表示)。

UNICODE 與 ISO 10646 漢字集碼

為解決不同國家間字元資訊交換的困難,自1984年起陸續出現兩個組織,希望能發展出全球可以共用的編碼字集。一是國際標準組織ISO與國際電工聯盟IEC合組的第一聯合技術委員會下的工作小組ISO/IEC JTC1/SC2/WG2,該小組提出的ISO 10646標準草案,就是想集結全球通用的字符集,成為一個大聯集,以滿足各國字元資訊交換的需求。另外一個就是Unicode協會(Unicode Consortium),也積極採用新的觀念和架構來設計適用全球的統一碼(Universal Code;簡稱Unicode,俗稱萬國碼)。這兩個組織雖然在開始時是各自發展,但是WG2終於放棄原先選擇的ISO/IEC 2022七位元與八位元延伸編碼結構,改採Unicode的編碼方式,亦即連續編碼不再避開C0和C1控制碼區。1991年10月WG2和Unicode協會達成協議,將Unicode併入UCS(Universal Character Set)成為第0字面,字元集和字元碼完全相同,但雙方仍各自出版自己的編碼標準。

國際標準組織於1993年5月出版了「通用碼架構及基本多語文字面」(UCS Architecture and Basic Multilingual Plane)草案,該草案將此標準定名為Universal Multiple Octet Coded Character Set(通用多八位組編碼字符集),並說明其編碼架構為4個位元組(4 Bytes),共組成128個群(Group),每一個群有256個字面(Plane),每一個字面有256×256個編碼空間,其中第32群的第32個字面為基本多語文字面(Basic Multilingual Plane;簡稱BMP)。到了1993年ISO 10646-1正式版本,此標準定名為Universal Multiple-Octet Coded Character Set(廣用多八位元組編碼字元集;簡稱UCS),BMP則定義在第0群第0個字面。在使用上,假如需用的字集都在BMP中,則只要使用2個八位元組的編碼架構即可,否則就必須使用4個八位元組的編碼架構;而且這兩種編碼架構不能混合使用,不是使用2個八位元組,就是使用4個八位元組的固定長度編碼架構,其用意就是要避免ISO 2022不定長度的缺點。參與制定ISO 10646的代表莫不儘量爭取把自己國家使用的字集編入BMP,目的就是希望能利用BMP只用2個八位元組的優勢,取得比4個八位元組更高的資訊處理效率。

BMP既是如此重要,而其編碼位置卻有限,因此如何充份利用這些編碼空間處理更多常用字符集,就成為標準研訂時的一個重要考慮因素。原本在BMP的設計中,除編入西方拼音文字及符號外,在漢字方面只蒐集日本、南韓及中國大陸三個地區使用的漢字字集,並沒有考慮到我國的字集,我國遂積極組團以民間團體-台北市電腦商業同業公會(TCA)的名義,參加ISO 10646的制定,以爭取將我國使用的正體字編入BMP中。

ISO 10646編碼基本原則為”一字一碼”,我國及大陸的代表因此就共同提出了HCS (Han Character Set) 的構想,這個構想同時獲得美國及其它國家代表的支持,進而一步步發展至今。1993年公布的ISO 10646-1之BMP中,已經將台灣、大陸、日本和南韓所使用之漢字整合成獨立的「中日韓認同表意文字區(CJK Unified Ideographs)」,使得亞洲幾個主要使用漢字的國家,有圓滿的解決方案。

當初進行中日韓漢字編碼時,因各國所提出的漢字集有重複及形、體不盡相同, SC2/WG2因此邀集各國指派的專家組成CJK/JRG(中日韓聯合研究工作組,即IRG前身),先進行重複字比對、篩選及形、體認同(unify)原則討論等工作。CJK/JRG歷經五次會議完成的「中日韓認同表意文字」(CJK Unified Ideographs),係參考了我國75年版CNS 11643之第1、2、14字面(T欄),大陸的GB 2312、GB 12345、GB 7589、GB 17590、GB 8565(G欄),日本的JIS X 0208、JIS X 0212(J欄)及南韓的KS C 5601、KSC 5667(K欄)等標準字符集,可說已包含這四地所常用的字。其字序主要是參考康熙字典、大漢和詞典、漢語大詞典及大字源字典,以先部首後筆劃的順序排列。CJK/JRG將此結果送交SC2/WG2編碼,完成了ISO 10646:1993 之BMP中I區的表意文字編碼標準,總計含20,902個漢字,其中包含了CNS 11643用字共17,011個。

BMP的「中日韓認同表意文字區」空間有限,未能將亞洲各國所使用的表意文字全部納入,確有再擴增的必要。為此ISO於1993年特在SC2/WG2之下成立IRG (Ideograph Rapporteur Group)工作組,專司BMP「中日韓認同表意文字區」的內部/水平擴充(Internal / Horizontal Supplementation)及外部/垂直擴充(External / Vertical Extension)整理工作。參與者包括中國大陸、台灣、日本、韓國、香港、Unicode Consortium、美國、越南及新加坡等。1998年IRG完成「中日韓認同表意文字擴充A」(CJK Unified Ideographs Extension A),編訂6,582字,送交SC2/WG2通過,編碼於BMP之A區的3400~4DFF,其中包含CNS 11643用字共5,879個。

BMP同時收編拼音文字、符號和表意文字,經過這兩階段漢字集的編碼,BMP總計已編入27,484個表意文字,幾乎已無剩餘的大塊連續編碼空間。但全球、古今各種語言文字和符號的數量何其龐大,無法全部容納,故拼音文字和符號部分,扣除已編入BMP者,其餘全部編入第1字面,包括一些古代語言的字母和數字、拜占庭和西洋音樂符號、太玄經符號、文數字符號等,第14字面目前只收錄了幾個用途未定的標籤字元;而表意文字部分,扣除已編入BMP者,其餘全部編入第二字面。被認定相同的CNS 11643字元527個,收容於「中日韓相容表意文字擴充A區」,編碼範圍為0002-F800~0002-FA16h。

然而漢字為數眾多,因此IRG持續進行「中日韓認同表意文字擴充B」(CJK Unified Ideographs Extension B)的整理,這套字集涵蓋康熙字典全部用字、漢語大字典全部用字及大陸、台灣、韓國、越南、香港所提的國家標準字集。擴充B字集係編碼於ISO 10646 第二輔助字面(Plane 2),總計42,807中日韓越漢字,編碼範圍為0002-0100~0002-A836h,其中含我國CNS 11643第4~7字面共約3萬字。「中日韓認同表意文字擴充B」擴編完成後,CNS 11643第1至7字面有95%以上的用字全部納入ISO 10646標準中,其餘5%是被認定相同(unified)的字。

由於國際資訊交流的日趨密切和多國語言交換之需求,已有越來越多的資訊廠商如微軟,已經以ISO 10646 / Unicode標準提供資訊處理環境,對中文處理的影響是不容忽視的。而表意文字使用國家如我國及中國大陸,還有許多漢字需要擴編入此標準,因此截至目前為止,ISO 10646仍然在進行修訂與擴充。

BIG-5 碼

BIG-5 碼俗稱「大五碼」,係財團法人資訊工業策進會於 1984 年策劃制定,最初設計宗旨是儘量不要使用到控制碼範圍,並配合國人自製的五大(BIG-5)套裝軟體,於 PC 上使用一致的內碼。由於委託民間設計,導致初期的 BIG-5 碼並不能使用於五大套裝軟體;雖然如此,市面上絕大多數的套裝軟體仍是在BIG-5內碼系統發展出來的,後被普遍使用於早期的個人電腦,是倚天中文系統及 Windows95、Windows98、WindowsME 的中文內碼。

由於 BIG-5 系統軟體內建的中文字集不敷使用,故業者紛紛自行造字,因此產生數種不同的版本,使用者無所適從,所以在 2003年由財團法人中文數位化技術推廣基金會接受經濟部標準檢驗局委託,召集國內業者代表、專家和學者,就 BIG-5 原始版本和各主要業界版本予以重整為最新版本 BIG5-2003。

BIG-5 碼為長度2Bytes之內碼系統,編碼區間:高位元組為81-FE,低位元組為40-7E、A1-FE,共可定義19,782個字碼,系統內編13,053個中文字,字集取材於CNS 11643中文標準交換碼第一字面的常用字5,401及408個符號、第二字面的次常用字7,652;但編碼順序與CNS不同,採傳統之部首、筆畫序。保留6,217個編碼位置供使用者造字(USRFONT):第一區FA40~FEFE共785個碼位,第二區8E40~A0FE共2,983個碼位,第三區8140~8DFE共2,041個碼位,第四區C6A1~C8FE共408個碼位。

BIG-5E 碼

行政院主計處電子處理資料中心奉行政院交辦,協助解決眾多政府單位使用BIG-5碼進行公文電子傳遞時所遭遇之自造字無法轉換問題;經數次會商後,決議請行政院研究發展考核委員會成立專案委託財團法人中文數位化技術推廣基金會辦理「BIG-5碼字集擴編計畫」。86年7月擴編完成「BIG5+碼」,但此項成果未被微軟採用,故市面僅有一項產品可用。

但「BIG5+碼擴編計畫」成果中的「標準字集」,大多數是政府單位一般文書極常用之自造字,如推廣應用,將可有效整合政府單位常用自造字、降低轉碼的頻率。有鑑於此,研考會再度委託中推會,由BIG-5+碼之「標準字集」中挑選CNS11643及ISO10646漢字集所共有且為政府機關較常用的3,954個字,在BIG-5碼的系統造字區中建置「BIG-5碼補充字集(BIG-5 Extension Character Set,簡稱BIG-5E)」;並配合行政院「電子化╱網路化政府計畫」之推動,於公文電子交換作業規範中訂為可處理中文碼類別之一。

BIG-5E之編碼區間8E40 - A0FE (即BIG-5使用者造字區第二區)納編CNS11643第1字面的3個部首(原倚天定義之C6C2、C6C5、C6C6)、CNS1643第3字面2,980個字,編碼區間8140 – 875C (即BIG-5使用者造字區第三區)納編CNS11643第3字面911個字、CNS11643第4字面59個字、新增國字零(O),保留875D - 87EE加字碼位128個。BIG-5E碼之安裝工具與資料檔,可由行政院主計處電子處理資料中心的全字庫網站及研考會的官網下載、安裝。

電信碼

電信碼全名為「數據通信中文電碼」,是由交通部數據通信所編訂。電信碼是一個2-byte內碼系統,可定義17,672個字元,分成二個字面。第一字面定義了7,902個常用字、41個繁體中文注音符號及94個標準 ASCII字符。第二字面定義了8,489個次常用字。

GB2312

GB 2312《信息交換用漢字編碼字符集基本集碼》是中華人民共和國國家標準漢字信息交換用編碼,只規範簡化字,標準號為GB 2312-80,自1981年5月1日開始實施。

GBK

GBK碼係中華人民共和國制訂,等同於UCS中新的中文編碼擴編的國家標準,於1995年12月完成,該編碼標準相容GB2312,能夠同時表示正體字和簡體字。共收錄漢字70,205個、符號883個,並提供1,894個造字碼位。

Big-5 碼香港增補字符集 (zh_HK.hkbig5)

香港地區big5增補字符集(Hong Kong Supplementary Character Set,HKSCS)係香港特別行政區於1999年9月訂定,共編碼4,702個中文字,專用於香港地區,作為香港的電腦上通用的字元集。

參考網站:http://www.cns11643.gov.tw/AIDB/encodings.do 、http://idv.sinica.edu.tw/bear/charcodes/codeindex.htm

 

︿
回頂端