中文字的比對也會遇到問題。單純地比對code-point往往不夠,例如「峯」與「峰」的Unicode code-point雖然不一樣,但是這兩個字是異體字。如果最後決定將異體字視為完全不同的字,但是同一個字也可能會有不同的編碼。例如「曌」,可以是1個Unicode code-point,也可以是3個code-point(上下、明、空),也可以是5個code-point(上下、左右、日、月、空)。

中文比對
儘管中文字的比對不再有問題,我們還是會遇到中文字排序的問題。目前正體中文排序似乎都是照筆畫排序。Big-5分成常用字和次常用字,這兩部分各自都是以筆畫順序排序。所以只要照Big-5編碼次序排序,就等於依照中文筆畫次序排序。但是如果排序的字中,同時有常用和次常用字,那麼就不成立了。

中文字的排序,除了筆畫,應該也可以增加發音和部首,如果是這樣,恐怕每個字都必須建立形音義的資料庫。這似乎是中文比對和排序的唯一長久解決之道。

能比對中文,不見得就能正確搜尋。比方說,現在許多網站的網頁伺服器會安裝servlet,在將網頁送給client之前,會先讓servlet程式剖析過。例如:文章中如果提到IBM,則在IBM的文字處加上超連結。這種應用遇到中文,往往會嚴重誤判。

比方說,文章中提到「完成祖國統一大業」,或者「三民主義統一中國」,這裡的「統一」會被加上超連結,連結到生產速食麵的統一企業。統一企業和兩岸統一其實一點關係都沒有。

上面的例子還算「斷字正確」,下面的例子則是斷字錯誤:「看書包準睡著」,和「書包」沒關係,所以如果連到書包的購物網站,就會貽笑大方了。

我常常在看「聯合新聞網」時,發現他們的網頁就有這個問題,特別喜歡把「花」連到花卉的購物網站,所以不管文章中提到「花」費驚人、傳統豆「花」、老眼昏「花」或者歌仔戲天后楊麗「花」,通通會連到花卉的網站。

簡繁體轉換
臺灣海峽兩岸分別使用簡體和正體(繁體)中文,常常需要透過對照表的方式進行簡繁體的轉換。如果沒能解決剛才提到的「中文比對」問題,簡繁體轉換就可能會出問題。

除此之外,簡體字由於簡化過,所以有一些字被消滅了。例如在臺灣,「后」只做皇后的意思,但是在大陸,也具有「後」面的意思。這會使得簡繁體文件轉換之後出現失真(distortion)的狀況。

如果你有一份正體中文文件,將它轉成簡體中文,再轉回正體中文,你會發現文件可能失真了。我就遇過這樣的例子,我用正體中文寫了一篇技術文章提供給大陸的雜誌發表,我自行用MS-Word的簡繁體轉換功能,將文章轉成簡體中文,再寄給大陸的雜誌社。

後來我找不到正體中文稿件,於是我用簡體版本的稿件,搭配MS-Word的簡繁體轉換功能,將文章轉換成正體中文,然後交出去給臺灣的網站發表,結果錯字一堆。我印象最深刻的是「咸」這個字。當時我的正體中文句子是「一般咸認為這是很嚴重的問題」,轉化成簡體中文之後,「咸」還是「咸」;但是,再化成繁體中文之後,「咸」卻變成「鹹」。

雙向文字
不過,再怎麼抱怨許多IT技術對中文的支援度不好,至少我們可以慶幸的是,我們還比阿拉伯文和希伯來文的使用者幸運。由於CJK(中日韓)都算是資訊大國,所以近幾年的標準都會考慮到CJK,且由於CJK都可以用「由左至右」書寫,所以可以和西方語言相容。

阿拉伯文和希伯來文就不是如此了,他們的文字必須由右至左書寫,且某些文字可能會受到隔壁文字的影響,而改變文字外觀。當這些「由右至左」的文字,混雜「由左至右」的西方文字時,就是「雙向文字」(Bi-Directional Text)。

許多軟體(包括Ultra Editor)都不支援雙向文字,真正支援雙向文字的軟體比例不高。雙向文字的演算法相當複雜,為了要讓REBOL程式支援雙向文字,我花了好幾天才把Unicode Annex #9的演算法看懂。

雖然,現在的IT中文環境還有改善的空間,但是這二、三十年來,我看著IT中文環境在大家的努力之下,確實是有長遠的進步,特別是在進入網路時代之後,更是進步神速,現在已經可以說是到了品嚐果實的時期了。

不只中文,每一個語言都是一段源遠流長的文化,在電腦技術與標準上看到這些文化的融合與保存,這不啻也是資訊科技(IT)對人類文化的一種貢獻。

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

熱門新聞

Advertisement