倉頡輸入法
中文輸入法
倉頡輸入法五字拆碼.svg
倉頡輸入法的正体中文取碼
發明人朱邦復
發明年份1976年
類別字形输入法

倉頡輸入法是一種常用的中文輸入法,由有「中文電腦之父」美譽的朱邦復先生於1976年創製。初期只有正體中文版本,原名「形意檢字法」,用以解決電腦處理漢字的問題,包括漢字輸入、字形輸出、內碼儲存、漢字排序等。朱邦復發明此輸入法時正值他為三軍大學發展中文通訊系統之際,時任三軍大學校長的蔣緯國為紀念上古時期倉頡造字的精神,乃於1978年將此輸入法重新定名為「倉頡輸入法」。

1982年,朱邦復登報公開放棄倉頡輸入法專利權,並且極力推動電腦的中文化。現今大部分作業系統,甚至一些電子辭典皆附有倉頡輸入法,繁體中文鍵盤也大多印有倉頡輸入法的字根。在繁體中文世界裡,倉頡輸入法是最為普及的形碼輸入法之一。

倉頡輸入法適用於多種平台,主流的中文作業系統和大部分電子辭典均有內建。一些字典辭典或線上中文字典亦採用倉頡編碼作為檢索工具。

簡介

歷史

倉頡系統中,倉頡碼不僅用來輸入固有字,也可以組合、輸出字形,甚至呈現虛構字

1973年春季,朱邦復返回台灣後,欲改良中文打字機,鑽研中文檢索方式。花了約三年時間,並且在研究後期得到國立臺灣大學中文系畢業生沈紅蓮女士協助擔任助手,於1976年底發佈「形意檢字法」,最初使用52個中文字母作檢索字母,每個漢字分拆成3個字母的編碼。當時,三軍大學需要無給職人員發展中文通訊系統,40歲的朱邦復立即接受此一職務,這時的他並不懂電腦,至此才開始接觸程式語言。

1978年8月,朱邦復和助手沈紅蓮重新規劃拆取字根的方法,採用「首二身三」的規則,使檢索字母數由52個減至26個,以適應一般電腦鍵盤。在減省字母前,原先的設計是在同一鍵中安置兩個中文字母,以Shift鍵區分兩者。

1979年,三軍大學的有綫短程中文通訊實驗成功,朱邦復實現以中文字母作爲內碼,儲存漢字字矩信息,解決電腦處理漢字的問題。時任三軍大學校長的蔣緯國先生爲其賜名「倉頡輸入法」。朱邦復在同年12月開始,與宏碁電腦合作,開發內置程式語言、中文系統及應用軟件的「天龍中文電腦」,於翌年起在市面上銷售,備受市場歡迎。此中文系統以倉頡碼為其根本,收字數萬,效率甚高。朱邦復因此獲頒發「行政院長獎」。

朱邦復繼續改進倉頡輸入法。同年,由他成立的零壹公司發表第二代倉頡輸入法,使用在他爲Apple II電腦設計的「漢卡」產品上。「漢卡」爲該機提供中文介面,售價新台幣1500元,使得華人利用電腦處理中文的成本更低。

1982年,朱邦復在《康熙字典》裏選取四萬多字,改良第二代倉頡,使它適應大字集的輸入,並把成果發表爲第三代倉頡輸入法。同年,他登報公開放棄倉頡輸入法專利權,並且極力推動電腦中文化。現今大部分作業系統,甚至一些電子辭典皆附有倉頡輸入法,為正體中文世界最普及的形碼輸入法[1]

朱邦復本來想根據其「漢字基因」理論,建立一套「倉頡系統」,用倉頡碼統一處理漢字的形、音、義、碼、序、辨等六大問題。其中倉頡碼的原始目的是漢字檢索及排序,其取碼具有字首字身的概念,以字首做為分類,字身做為補充,如此便可讓電腦「理解」漢字,進而達到組字、字義理解,甚至與人溝通的功能。

由於本以漢字檢索為目的,倉頡取碼依據視覺辨識原理,能反映漢字的細微特徵,同一漢字的不同字形異體字,許多時都會有不同的編碼,因此重碼率為當今中文輸入法最低者[2]。倉頡輸入法亦為一般系統中支援字庫最大者,幾乎所有系統可見的漢字,皆可用倉頡輸入法(系統)鍵入,因此也成為漢字文化工作者選用的主要輸入法。然而,當今主流電腦系統只提供倉頡輸入法,沒有採用整套倉頡系統,因此許多原先的設計理念,如倉頡內碼、字型產生器與極大字庫等,都沒有實現。[3]

優缺點

由於開發甚早,又無版權,倉頡輸入法的普及度在中文電腦系統中十分高,號稱「只要有中文系統,就必定有倉頡輸入法的存在」,所以人們學習倉頡後,理論上是不用擔心無法使用它的。此外倉頡的重碼率為所有中文輸入法中最低,這就讓使用者只需要看着稿子或鍵盤就能打字,不需要緊盯着螢光幕來選字,實現「盲打」。倉頡輸入法字根較許多形碼輸入法少和簡單,容易記憶。它不依靠四排按鍵——即使沒有把鍵盤上的數字鍵、符號鍵都用作中文字根鍵,輸入時手指活動幅度與英文打字相若也免除輸入符號、數字時的困擾,以及在手提電腦鍵盤上遇到的移位問題。它對漢字的拆分規則清晰嚴謹,只要熟悉拆碼規則,絕大多數漢字的拆碼都沒有爭議。倉頡輸入法支援的字庫極大,能輸入幾乎所有系統能呈現的漢字。

倉頡輸入法雖然具備以上優點,但也受到許多批評,例如為了顧及檢索而令編碼規則相對較繁複,沒有容錯編碼[4],取碼字形問題[5],版本差異問題[6],導致規則略顯繁瑣、取碼或遇問題,而被一些人視為畏途。另外倉頡輸入法並未為常用字之快速輸入設計簡快碼,没有类似于五笔的词组输入方法,標點符號之輸入也略嫌不便,因此沒有成為最快速的中文輸入法。

不過,倉頡輸入法有一些衍生版本,改進了上述的批評點,例如加入容錯編碼、不同字形的取碼、簡快碼、詞組輸入,同時容許不同版本的取碼等。它們都標榜可以由傳統倉頡輸入法輕鬆跳至衍生版本。當中有一些版本更提升了輸入速度。例如大新倉頡輸入法,是目前中文電腦輸入最快速紀錄的優勝者[7]

倉頡還有一些特色,常被競爭對手或批評者視為缺點,但有研究輸入法的人士並不同意有關批評。包括:依字形來取碼,而非依書寫的筆畫和筆順取碼;同一筆畫可以剪開(例如「里」字的倉頡碼為「田土」)等。批評者認為它違反漢字邏輯,令漢字走上「歧途」,是缺點[8]。反駁者則指漢字在分析構形字理、字典部首歸部時,都是按形狀分析,會不依筆順甚至剪裁筆畫,因此這只是主觀上接受與否的問題[9]。有些競爭對手如嘸蝦米的發明人或擁護者甚至以攻擊倉頡輸入法來作爲文宣,一些輸入法硏究者對此不予認同[10]

最新版本

目前倉頡輸入法通行的最新公開版本是第五代,而流傳最廣泛、最常使用版本是第三代[11]。三代倉頡與五代倉頡相差不大[12]

朱邦復的多年助手沈紅蓮,另行設計蒼頡檢字法,坊間多稱之爲「第六代」倉頡,但實際使用上,一般都不把它視爲倉頡輸入法的新版本,相反更像另一款由倉頡衍生而來的新輸入法。它與三代倉頡或五代倉頡相差較大,字根明顯增多,拆碼規則也有不少改變。它應用於朱、沈二人開發的倉頡系統上,該系統字庫完整收錄了歷代文獻用字十萬以上,以蒼頡碼作為內碼,重碼率低於5%。雖然倉頡輸入法愛好者向朱邦復工作室索取到蒼頡檢字法編碼,但它尚未正式發佈。

輸入介面

Microsoft Windows
Ubuntu之下,以Gedit利用倉五輸入中文
Android裝置輸入中文
維基百 
這樣的小框於文字旁邊。
  • 用戶亦可使用「*」(Shift + 8)來代表不知道的碼(萬用字元):
廿  
結果會與速成輸入法出來的結果一樣。
OS X
  • OS X,Z鍵是「重」,每個「重」代表一個未知的碼︰
維基百竹重重十
維基百科

版本與平台

版本演進

  • 1977年,朱邦復在台灣發表第一代倉頡,根據一萬二千字的《國語辭典》所設計。
  • 1980年,發表第二代倉頡,僅將第一代倉頡略作調整。
  • 1982年,發表第三代倉頡,是以《康熙字典》為範圍,選取其中四萬字,將第二代加以改良的結果。
  • 1985年,在美國發表第四代倉頡。
  • 1987年,返中國深圳科技園,任兩儀文化科技公司總經理,發表聚珍大字庫、第五代倉頡輸入法。第五代將正、簡體字統一處理,共收集了約六萬字,同時增加一些輔助字形及修正了少許的取碼。在朱邦復工作室页面存档备份,存于互联网档案馆)網站上的《第五代倉頡輸入法手冊》一書中提供了第三代、第五代改碼字的對照表。
  • 1990年,與台灣資策會合作開發微軟中文視窗系統3.0,採用倉頡系統的概念。後來朱邦復與微軟的合作關係破裂,之後Windows系統改採其他的漢字編碼系統,並自行更新第三代倉頡輸入法(修改了一些異體字及加入了部分香港字,但有錯碼),成為目前所見的主流版本。目前一般所稱的「三代倉頡」多指此版。
  • 2002年,朱邦復在其論壇提及:「倉頡輸入法最後一版本 —— 第六代已完成,並據之設計中文CPU」。因為朱邦復已不理輸入法之事,轉交沈紅蓮女士負責。第六代倉頡輸入法改名為「蒼頡檢字法」,原本並不公開,僅供與朱邦復工作室有工作關係之專家學者使用,直至2013年才釋出予倉頡輸入法愛好者。雖然通稱「六代」,但實際使用上,一般都不把它視爲倉頡輸入法的新版本,相反更像另一款由倉頡衍生而來的新輸入法。
由「面」、「非」兩字即可辨別是第三代、第五代倉頡或者蒼頡檢字法:
  • 三代:「面」字取碼MWYL( );「非」字取碼LMYYY(
  • 五代:「面」字取碼MWSL( );「非」字取碼LMSY( 
  • 蒼檢:「面」字取码MWS(  );「非」字取碼LSY(  

軟體支援

倉頡輸入法所有字根在電腦鍵盤上的排列
Windows 95/98/NT/ME/2000/XP作業系統中內建的倉頡輸入法是第三代的修改版;Windows Vista/7/8內建的倉頡輸入法則兼容第三代和第五代(預設情況下,僅支援第三代;設定使用CNS11643中文標準交換碼字根後,可同時支援第三代和第五代)。Windows 10 內建的倉頡輸入法則僅支援三代,並不兼容五代。
Mac OS X 10.4內附的為第五代。
SCIMgciniBus同時提供第三代和第五代,部份如OXIM只提供第五代。
  • 其他
電子辭典等平台,中文全字庫页面存档备份,存于互联网档案馆)、漢字構形資料庫页面存档备份,存于互联网档案馆)等漢字資料庫檢索系統,皆採用第三代。而朱邦復推廣的漢文庫典,則採用第五代。
此外網路上還有許多

這裏僅提供簡介,詳情可見 維基教科書中有關倉頡輸入法的文本。

倉頡鍵盤

只備倉頡字母的鍵盤,這種設計類似007電影《明日帝國》中出現的中文電腦鍵盤
鍵上同時印有倉頡字母與英文字母的鍵盤,是地區常見的鍵盤類型

倉頡字母即倉頡輸入法的主要字根(主根),分為四大類,共24個,另有2個特殊鍵。這些鍵與26個英文字母一一對應(以下括號內的中文字為字母之代表字[13]):

哲理類 筆畫類 人體類 字形類 特殊鍵
  • 日(A)
  • 月(B)
  • 金(C)
  • 木(D)
  • 水(E)
  • 火(F)
  • 土(G)
  • 竹(H)
  • 戈(I)
  • 十(J)
  • 大(K)
  • 中(L)
  • 一(M)
  • 弓(N)
  • 人(O)
  • 心(P)
  • 手(Q)
  • 口(R)
  • 尸(S)
  • 廿(T)
  • 山(U)
  • 女(V)
  • 田(W)
  • 卜(Y)
  • 難(X),用於特殊的「難字」,如:      等。注︰輸入    並不會輸出「難」字。
  • 重(Z),原本用於重碼字,但從第三代開始不再使用。部份系統改用作輸入標點符號,如句號 ,或者被一些自製倉頡當作特殊鍵用,寫法不一,有寫作「重」、「片」、「符」、「標」等。

舉例說,「妲」字由倉頡字母「女、日、一」組成,輸入時就敲打「女(V)、日(A)、一(M)」三鍵。

這24個倉頡字母還可再變化、衍生出「輔助字形」(輔助字根、輔根),來組合所有的中文字。例如:「水」衍生出「氵」(三點水);「手」衍生出「扌」(提手旁);「中」衍生出「丨」(主榦是豎筆);「弓」衍生出「亅」(重點爲鈎形);「田」衍生出外圍的「」(音ㄨㄟˊ;框內有東西,與『口』不同)等等。詳情可見維基教科書上的說明。

這裏舉出一個運用輔助字形的例子:「泗」字由輔根「氵、囗、Cjrm-c6.svg」組成,由於「氵」隸屬「水」,「囗」隸屬「田」,「Cjrm-c6.svg」隸屬「金」,輸入時就敲打「水(E)、田(W)、金(C)」三鍵。

實際應用時,倉頡字母和輔助字形通常會混用,比如「烟」字由主根「火」、輔根「囗」(隸屬「田」)和主根「大」組成;「桐」字由主根「木」、輔根「冂」(隸屬「月」)和主根「一」、「口」組成;「銀」字由主根「金」、「日」和輔根「Cjrm-v10.svg」(隸屬「女」)組成。

取码概要

倉頡輸入法的取码示例

凭视觉(非字义或笔顺)把汉字分割为字首及字身,字首为最左、最上、最外部份,剩余部份为字身。若字身可以再分,则分为次字首和次字身。各部份再分拆为有限个字码(中间部分省略),以不破坏字形特征和视觉容易辨识为准。

字首最多取二码,字身最多取三码;无法明确分割为字首、字身者(如“东”),则全取。一个汉字最少用一码输入,最长则为五码。取码以后再按下空白键(组字键),即可输出字元(字形)。

例如:

漢字 分割 碼數 取碼 鍵盤上的按鍵
整體字,無法分割 最多取 4 碼 中中 LL
字首:王 . 字身:里 最多取 2 . 3 碼 一土 . 田土 MGWG
字首:艹 . 次字首:女 . 次字身:古 最多取 2 . 1 . 2 碼 廿 . 女 . 十口 廿 TVJR
字首:言 . 次字首:五 . 次字身:口 最多取 2 . 2 . 1 碼 卜口 . 一一 . 口 YRMMR
註︰ 以上數字爲取碼類型。基本上,只要将字形一分爲二,最左、最上、最外的字首部份,取首、尾二碼;其餘的字身部份,依規則取三碼,則可拆解所有漢字。

正简输出

倉頡輸入法是少數能同時輸出正、簡體的輸入法,但部分平台(如微軟Windows)上的簡體倉頡拆字並不標準,部分違反了原本的拆碼規則,或者使用了非簡體字習慣字形,用戶需要稍作適應。一些外掛的倉頡輸入法會改用朱邦復工作室的標準倉頡編碼,不會出現下述的問題碼;或者採取加入容錯碼,令同一字可能有超過一種拆碼方法。

例如:

簡體字 字碼 註譯
金一大 微軟依照字的傳統寫法來拆碼,首碼為「金」而非「廿」,全碼為「金一大」。標準倉頡依簡化字習慣寫法,取「廿大」。
戈弓 言字旁作字首時,微軟取碼為「戈弓」,如「订」的編碼是「戈弓一弓」。但標準倉頡取「戈女」,如「订」字取「戈女一弓」。

不過,大部分字如                等,均符合繁體倉頡的取碼原則,毋須重新適應。

其他特色

以下是字形输入法的比較
輸入法 時間
(年)
輔助字根數 大五碼常用字重碼率[14]
共5401個字
倉頡 1976 140個(含難字根) 三代:
郑码 1980 約170個 不明
五筆 1983 約200個
大易 1988 約250個 三碼:
四碼:
嘸蝦米 1989 基本字根約350個
簡速字根約150個
行列 1992 超過300個

倉頡和速成也能輸入標點符號,方法是輸入 ,速成則取頭尾碼,或選擇全形後直接按鍵盤上相應的半形標點符號。另外同時按下 Ctrl+Alt+, 會彈出符號表。

第一個只能為 A、B、C 其中一個,
第二個只能為 A 至 Y 其中一個。

比較常用的為 ,以及 

使用狀況