以前我的美國籍英文老師看到我輸入中文時,都嘖嘖稱奇。中文字有上萬個,但鍵盤只有約100顆按鍵,對於許多不知道何謂IME軟體(讓使用者不安裝中文輸入法,也能使用簡單的拼音輸入法輸入中文)的西方人來說,如何輸入中文字,一直是一個神秘難解的謎團。

中文輸入
想輸入CJK(中日韓)文字,必須利用IME進行字的組合。常見的輸入法包括鍵盤、手寫、語音。微軟的鍵盤輸入法越來越好,我個人認為微軟新注音輸入法的品質,已經比一家號稱「自然就是美」的輸入法更好用了(至少新注音的錯字比較少)。我認為微軟語音輸入法的品質也快要趕上IBM,手寫輸入法的辨識率也相當高。經過數十年來的研發,中文輸入法已經不再是個問題了。

甚至再這樣發展下去,中文的語音輸入法或許可以超越英文的語音輸入法,中文語音的辨識應該比英文更容易,因為除了「兒化音」之外,中文幾乎都是一個字一個音節,而英文字,連斷字都會有問題,例如「I Scream」和「Ice Cream」的發音是一樣的。雖然現在的中文語音輸入法已經算很實用。但是,對於大量輸入文字的作家以及上班族來說,還是打字比較實際。我曾經在翻譯一本書的期間,使用語音輸入法,當時我每天喋喋不休,嘴巴很痠,喉嚨很渴,這些是我事先沒預料到的,我認為語音輸入法廠商應該要在產品上加註警語,提醒消費者長時間使用,可能有口渴、嘴痠的症狀。於是,沒多久,我又走回鍵盤輸入的老路。

至於手寫輸入,速度太慢,恐怕只有在掌上裝置等不方便使用鍵盤的地方,才適合將就著用。以上一期提到的「龘」(三個龍)這個字來說,筆畫是48畫,假設寫3筆畫需要1秒,那麼寫出這個字就需要16秒,加上寫完後停頓讓電腦辨識的時間,我們需要18秒才能輸入這個字。如果是講話連珠砲似的張小燕來用語音輸入法,或者像莫札特這種手指頭特別靈活的神童用鍵盤輸入法,恐怕18秒已經足以讓他們寫出一篇作文了。

IME,是CJK(中日韓)文字獨有的特色,但是很少有程式會好好使用它。有的時候,你不希望IME出現的時候,IME卻一直跳出來干擾你。如果你是軟體開發者,我建議你可以去看看IME相關的API,Flex和.NET都有這樣的API,如果這些API沒有你要的功能,你可以直接呼叫Win32的IME相關API。最近Windows平臺開始提供整合各種輸入介面的API:Text Service Framework,也值得參考。

中文造字
有許多怪異的中文字,只會出現在人的名字中。而且很可能造了這個字,就只給某一個人用,只要這個人一掛掉,這個字就沒有人用了。武則天就創立了不少怪字,其中最有名的是「曌」(上「明」下「空」),人家是女皇帝,我們拿她沒輒,只好眼睜睜地看她胡搞。如果武則天生長於現代,我會幫武姑娘寫推薦信,請她到Unicode.org上班,一方面可以借重她的長才,二方面可以讓Unicode.org的老闆叫她收斂一點。

為什麼名字中會出現這麼多的怪字,那是因為中國人是很迷信的民族,連名字都是迷信的一環。孩子出生了,為了他的命運著想,會去找大師命名,大師說:「這個孩子的生肖和出生時辰缺『龍』,所以名字中要多寫幾個『龍』;天格和地格的筆畫加總必須為質數,長大以後才能成為傑出的科學家。」然後這個大師會在紅紙上用毛筆寫一個名字給你,很可能名字中的字是不存在的,新的字就被創立了。早期沒有電腦化,所以姓名的登記都是用書寫的方式,所以隨便創造的字,也可以在戶政事務所登記成功。

Unicode有大量奇特的中文字,我常常懷疑,這些字的使用頻率,一年有沒有到達一次。但是這些奇特的字,有些是古書上的字,不見得沒有存在的必要。幸好Unicode有組字功能,例如,假設武姑娘想建立「曌」這個字,但是Unicode不存在這個字,她不用跺腳插腰發姑娘脾氣,可以直接用三個Unicode的code point來表示「曌」,第一個code point表示「這個字是由上下兩個部分所組成」,第二個code point表示「上面部分是明」,第三個code point表示「下面部分是空」。這種造字方式可以套疊(nested),所以可以造出相當複雜的字。

但是先別興奮,「中文組字」雖然是Unicode的標準,但目前Windows不支援,所以你無法在Windows上面看到自己造出來的字。(但是我最近用REBOL寫的程式不使用OS的文字輸出,而是用自己的文字輸出引擎,有支援中文組字。)

蔡學鏞-專職作家
清華大學資訊工程碩士,曾任華碩集團軟體工程師、元智大學資訊系講師、美商歐萊禮出版社技術編輯、臺灣微軟特約專欄作家。

熱門新聞

Advertisement