字碼
依行政院主計處電子處理資料中心及中文數位化技術推廣基金會於全字庫網站上對於中文字碼的定義為「依照一套固定的規則,針對指定的中文字集內的每一個字或符號,編訂相對應的代碼,以方便電腦資訊之處理與應用」。
- 內碼:某字在某電腦系統中的代表號碼,屬於某電腦系統的內部作業規則。
- 輸入碼(外碼):輸入某字所必須敲入的鍵盤序,如:倉頡碼、注音碼。
中文字碼發展背景
交換碼
中文資訊交換碼
民國65年以後,國內外對於中文資訊的處理變得愈來愈迫切。同時美國也因中國在國際舞台上日趨活躍,對於電腦處理中文的能力也有迫切需要。特別是在中、日、韓文檔案及圖書館典藏兩方面。民國68年由全美有關單位協調後,國會圖書館及各亞東語文圖書館等單位,統籌經費,委託〈美國學術團體聯會〉主辦此事。其負責人John W Haeger先於民國68年訪問日本,日本國會圖書館答應免費提供電腦設備加上兩位駐美日文電腦專家,以協主其開發東亞語文處理基礎工作。
John W Haeger順道訪問臺灣,了解臺灣當時處理中文資料的技術,並且邀請臺灣代表出席籌畫中的〈亞東圖書館自動化會議〉,以交換各國處理亞東文字的心得。會議於民國68年1月召開,成員包括美國亞東圖書館界代表、日本、韓國和臺灣代表。會中討論如何訂定標準之中、日、韓交換碼,以作為自動化依據。日本代表提出以其國家標準JIS C 6226,並想用其中的漢字作為國際方塊字上的標準,且當時也只有日本具有此一國家標準,所以負責人幾乎採納日本代表建議。但與會華裔美國國會圖書館代表及臺灣代表居極力反對,並以日本漢字不足以代表中國文字的各種理由,保證基於臺灣中文電腦的蓬勃發展趨勢,臺灣有此能力,編出一套真正屬於中國文字之交換碼,可用於全世界,故會議暫時否定日本提案。但要求臺灣須於民國69年3月〈亞洲研究學會〉年會中提出臺灣編著的〈中文資訊交換碼〉成果。
李國鼎接獲此事,立即指示謝清俊博士等學者開始編〈中文資訊交換碼〉及各項相關配合事宜,並成立國字整理小組。國字整理小組負責全面而徹底從事中國文字整理、〈中文資訊交換碼〉之編訂,以及解決電腦處理中文資訊上所可能遇到的技術問題,還有中央圖書館在自動化方面的配合。完成後定名為〈中文資訊交換碼〉CCCII,共含教育部4808字,完全依照〈ISO 646〉和〈ISO 2022〉標準編碼。
後於美國會議中,會議請臺灣擴大編碼,故中文資訊交換碼進行第二次修改,收:正體字21158字、異體字10793字等。民國70年2月在台北召開的〈國際中文圖書館資料自動化研討會〉,〈中文資訊交換碼〉第二部正式公開。之後Research Library Group採用它作為美國處理中、日、韓文之正規標準。自民國72年〈中文資訊交換碼〉作為東亞國家文字碼,推廣到各學術單位及軍事單位實行。
中文標準交換碼
民國68年國家建設研究會建議臺灣應編中文字碼,而行政院將此案交由主計處電子處理資料中心研究,但該單位獲知CCCII發表後,認為國字小組破壞政府體制,故決議另做一碼,雖民國68年9月於溪頭開協調會,但主計處仍維持原決議。
民國70年2月,主計處另推〈中文標準交換碼〉,由李克昌主持,但因與ISO 646和ISO 2022衝突,故民國71年7月又推〈中文資訊標準交換碼〉,9月又出〈中文資訊交換碼(附冊)〉,但因字數過少漢字碼空間無法擴充。民國72年10月推〈通用漢字標準交換碼〉。民國75年又出新〈通用漢字標準交換碼〉並獲行政院核定,正式公布實施。同年中央標準局審定頒布為國家標準,編號「CNS11643」;民國81年該局再因應各界之需要,由原兩個字面共 13,051 個字,大幅擴編為七個字面共 48,027 個字, 公布並更名為『中文資訊標準碼』。現為整合全國各資訊系統與用字上的需求,其字面數已擴充到十五字面,除增納國內諸如戶役政、工商、公路監理等重要行政系統的用字外,亦將國際標準編碼 ISO 10646 中各國的拼音文字、CJK 字集收納其中。標準檢驗局於九十五年編審公告 CNS11643 最新版本,總字數高達九萬多字。
內碼
大五碼
早期個人電腦沒有共通的內碼,導致廠商推出的中文應用軟體無法推廣,並且與IBM 5550、王安碼等內碼不能相容,而台灣當時亦尚未推出中文編碼標準。七十二年IBM5550第一部可處理漢字功能的個人電腦出現,財團法人資訊工業策進會與國內 13 家業者合作進行「五大軟體專案」,發表了Big5(大五碼)。經濟部標準檢驗局委託財團法人中文數位化技術推廣基金會修訂Big5 ,正式定名為「Big5-2003」。行政院主計處電子處理資料中心協商行政院研究發展考核委員會成立「Big5 碼字集擴編計畫」專案處理,民國八十六年七月擴編完成「Big5+碼」。又完成Big5碼補充字集的建立工作。
除了臺灣外,其他使用繁體漢字的地區,如香港、澳門,及使用繁體漢字的海外華人,都曾普遍使用Big5碼做為中文內碼及交換碼。由於Big5碼缺乏粵語字,因此有從Big5碼擴充而成的香港增補字符集。
Unicode
世界各國大多制訂了本土使用的字元碼,依各國語言的字元集的大小,決定採用單位元組或多位元組的編碼方式。為了國際數位化資料的交流,各國有了發展多語言整合性字元集的共識。七十七年 Xerox 公司建議以將電腦字元集編碼的基本單位擴充,新的字元集編碼標準被稱為 Unicode。八十年由 IBM、DEC、Sun Micro、Xerox、Apple、MicroSoft、Novell等公司共同成立 Unicode 協會,並由 Unicode技術委員會(UTC,Unicode Technical Committee)從事各國字元蒐集、整理、編碼等工作。在同年發表第一版的Unicode標準。由於Unicode盡量兼容既有的地區編碼,同時也力求支援世界上各種語言文字,因此在作爲內碼的同時,也有交換碼的作用。它的UTF-8、UTF-16、UTF-32皆可說是交換碼。
五大行政資訊系統編碼
1、全國民眾基本資料(EUC-CSIC)
EUC(Extend Unix Code)內碼為全國戶役政單位所使用的基本字碼架構,UNIX 作業系統之內碼,字碼長度 4 byte,可納編高達七、八萬的姓名用字,滿足全國人民戶籍的基本資料的存放與處理。
2、財稅系統 (財稅碼與稅務碼)
財稅資料中心在資訊作業上所採用的內碼包含:
‧ 康大碼(即 4Bytes 王安碼)約兩萬一千多字。
‧ 新電信碼(3Bytes 內碼,2Bytes 展示)約兩萬四千多字。
‧ 稅務碼(D.P 主機專用,4Bytes 內碼,2Bytes 展示)約一萬八千多字。
‧ IBM 新主機碼(2Bytes)約兩萬多字。
將上述碼之交集約一萬八千多字彙整成國稅與稅捐稽徵機關資訊系統發展時之字碼基礎,稱為稅務碼。
3、交通事業(電信碼)
交通部數據通信所為配合供公共數據處理、公路監理等資訊系統所編訂出數據通信中文電碼(簡稱電信碼),屬內碼性質。
4、工商登記用字 (工商)
經濟部商業司負責管理全國公司行號的工商登記用字,其編碼系統以大五碼為基礎,並建置約五千餘個自造字。
5、地段名用字 (地政)
內政部地政司負責管理全國地址的登記用字,其編碼系統亦以大五碼為基礎,每個不同的縣(市)皆依各自不同的需求建置屬於自己的自造字對照表,因此除了原有大五碼的 13053 個字為各縣(市)所共用外,自造字對照表分別有各縣市等 25 種。
中文字碼發展問題
台灣歷史上的字碼發展相當繁雜,經歷了種種字碼的設計。1980年代台灣的狀況是幾乎是處於年年編碼、年年變碼的情形,每個階段所推出的字碼都存在疏漏,如字碼空間不足或是字集數量過少等等弊病。且也牽涉到台灣、中國編字碼人員對中文字不夠熟悉的問題。像是日本曾經起草〈國際標準組織IOS DP 10646〉草案作為新的字碼世界標準,但該草案中,在中國字體系相當不足,缺乏正體字的空間,只有中國大陸的簡體字。另一方面,台灣和中國大陸的字碼系統是借用日本的系統(如民國75年的〈通用漢字標準交換碼〉即為一例)。因此日本也不認同台、中的新方案。各國在技術層面難以配合。[5]
輸入碼(外碼)
倉頡輸入法的字碼
倉頡輸入法採用「日」至「田」及「卜」24個倉頡字母,另有「難」作爲特殊字母,共25個,以鍵盤上的A-Y作爲按鍵。Z鍵作爲特殊功能鍵。
按鍵 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
字碼 | 日 | 月 | 金 | 木 | 水 | 火 | 土 | 竹 | 戈 | 十 | 大 | 中 | 一 | 弓 | 人 | 心 | 手 | 口 | 廿 | 山 | 女 | 田 | 難 | 卜 | 重 |
- 倉頡輸入法「重」碼,視乎不同版本,也稱「Z」、「片」、「符」、「標」等。
在倉頡系統中,直接以倉頡輸入法的字碼作內碼。
嘸蝦米輸入法的字碼
嘸蝦米輸入法直接以26個英文字母作為字碼。
按鍵 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
字碼 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
大易輸入法的字碼
大易輸入法有40個字根
按鍵 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ; | , | . | / |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
字碼 | 人 | 馬 | 鹿 | 日 | 一 | 土 | 手 | 鳥 | 木 | 月 | 立 | 女 | 雨 | 魚 | 口 | 耳 | 石 | 工 | 革 | 糸 | 艸 | 禾 | 山 | 水 | 卜 | 心 | 言 | 牛 | 目 | 四 | 王 | 車 | 田 | 八 | 足 | 金 | 力 | 舟 | 竹 |
行列30的字碼
行列輸入法的字碼與三行鍵盤的鍵位相對應。
按鍵 | Q | W | E | R | T | Y | U | I | O | P |
---|---|---|---|---|---|---|---|---|---|---|
字碼 | 1^ | 2^ | 3^ | 4^ | 5^ | 6^ | 7^ | 8^ | 9^ | 0^ |
按鍵 | A | S | D | F | G | H | J | K | L | ; |
字碼 | 1- | 2- | 3- | 4- | 5- | 6- | 7- | 8- | 9- | 0- |
按鍵 | Z | X | C | V | B | N | M | , | . | / |
字碼 | 1v | 2v | 3v | 4v | 5v | 6v | 7v | 8v | 9v | 0v |
中文電腦與字碼使用現況
漢字作為語素文字,與表音文字有很大的不同,其相異之處亦展現在字碼的使用上。
但由於電腦上要傳遞漢字必須先將每一個漢字都編碼才能傳輸,於是,早期編碼空間的不足導致了缺字現象,也就是說明明存在的字,卻在電腦上顯示不出來,Unicode的出現,則適度解決了這個難題,卻又衍生出其他應用方面的缺憾。
當初Unicode組織在定義字碼的時候,決定以字形為基礎,將中日韓文使用到的漢字(簡稱CJK)統一在同一張碼表。然而,如果一個字在各國的字形各不相同,那麼,不論二者的差別有多細微,這兩個字形的Unicode字碼(codepoint)就不同。台灣使用的繁體字和中國通用的簡體字就常出現這個狀況,更遑論CJK文字混用的狀況了。例如「吳」、「說」、「悅」。吳字由於台灣、中國、日本的寫法略有差異,因此,共有三個不同的Unicode字碼;至於「說」、「悅」等字,台灣的「兌」字上端是「正八」,中國則慣用「倒八」,差異雖小,也都有各自的Unicode字碼。此外,一些偏旁簡化字(例如,「金」字邊的「銀」字),字形差異不大,對應的繁簡體的Unicode字碼卻也各不相同。
但儘管有上述缺憾,但基本上現今較常用的電腦系統,如windows,普遍仍是使用Unicode碼。