一直想寫一本有關中文電腦發展的書,但遲遲未能成事,或者先由這裡開始一鱗半爪吧?

星期一, 11月 22, 2004

中文內碼外傳 ─ 何宜慈是誰?

事實上,台灣的黃大一先生確寫過一本書《中文字碼:萬碼奔騰,一碼當先》,可惜筆者無緣拜讀。當中牽涉到電腦系統中文內碼早期發展的一點人事恩怨,至今在倉頡輸入法發明人朱邦復先生所著的《智慧之旅》中,仍有述及。

在個人恩怨之外,事件還牽涉到中文內碼收字的準則問題,這點到香港政府後來要擴編香港字符集之時,又引起類似的爭論。說來話長,分兩篇慢慢說吧。

早說過,電腦是外國人發明的,美國人最先應用,因此連中文內碼都是由美國人「逼」出來。美國國會圖書館是全世界最大的圖書館,收羅各國出版物,有人說要研究文革史,能找到最多資料的地方不在中國,而在美國國會圖書館。60年代美國國會圖書館要電腦化,需要多國語文支援,於是要求各國幫手,當時的盟友中華民國立即弄了一套中文資訊交換碼(Chinese Character Code for Information Interchange, CCCII)出來。

由於那時大型電腦當道,主要用戶像圖書館或其他政府機構等,每每會遇到各種人名及僻字,因此CCCII的編碼取向是無所不包,可以後續不斷發展,一如今天的Unicode那樣。

但這宏大的理想,當面對個人電腦登場時,記憶體和硬碟樣樣矜貴,卻又顯得有點奢求。到80年代初,以何宜慈為首的標準局主計署,便推出另一套國家標準中文交換碼(CNS11643)收了8836字,後來再擴展至一萬三千字。然而,當時台灣戶籍紀錄上的各式中文字總計已近一萬八千個,因此朱邦復大力反對何宜慈,挑出CNS11643的種種問題。

最後CNS11643被束之高閣,另外變生出Big-5。至於朱邦復,因為他支持的CCCII內含簡體字,被指可能與共產黨勾結,在當時黨國一家的氣氛下,他唯有離開台灣。即使後來學佛,朱氏始終放不下這點過去的宿怨,在著作中狠批何宜慈不懂中文編碼,又硬要以行政手段和流言攻擊他。

何宜慈先生是何許人呢?他是台灣有名的新竹科學園區管理局首任局長及資訊工業策進會第三任執行長,回台前先在IBM工作了16年,退休後去了(還是說「回到」才對呢?)美國,曾擔任個北京中關村科學園區的規劃顧問,2003年在美國過世。

總言之,何先生絕非一般小人物,只是今天又有幾多中文電腦圈中人記得曾有一位「何宜慈」。相反,朱先生無財無勢,不過將其中文輸入法開發源碼,至今依然名滿天下。而個人電腦亦已步入Unicode的世代了,個人電腦的歷史又翻過新的一頁。

朱邦復著《智慧之旅》網上版 http://www.cbflabs.com/book/wisdom/html/index.html
網上經典文獻「國內中文字碼之發展」http://libai.math.ncu.edu.tw/~shann//Chinese/bbs97.html


星期五, 11月 19, 2004

兩種萬「碼」奔騰

好了,現在擺在中文電腦面前的有兩大問題(其實不止兩條,其他技術問題日後再談):

第一,要有一套將中文輸入電腦的方法,也就是將中文拆解成一些可用鍵盤輸入的字碼,例如電報碼等。

其次,要在ASCII外,為中文另外編一套電腦內碼,讓中文系統跟從。

在國內,人們最感興趣的是第二個問題,一時各種輸入法五花八門湧現,多不勝數。最後字形輸入法之中,以五筆較為流行。五筆之所以成功,據《中關村》一書記述,皆因四通開發中文文書處理機時,想配一套拼音和一套字形輸入法。曾找過另一套,對方索價太高,找王雲伍時,王卻願意用每部機分成的方法不賣斷,雙方一拍即合。到四通中文機成功,各種輸入法爭相送上門要求加入時,王氏也沒意見,但卻自費找人協助四通宣傳,而示範的輸入法當然就是五筆,於是五筆便建立起「正宗」輸入法的形象。到後來四通想買斷五筆時,五筆已非當初的醜小鴨了。

在台灣,人們率先面對的卻是內碼眾多的問題。有電報碼、公會碼,以及行政院主計處電子資料處理中心開發的中文資訊標準碼及中文資訊標準交換碼等。可惜後者編得太混帳了,根本不能用,於是後來五大電腦公司(已無法考證包括那5大)合作,由台灣的資策會牽頭,於1984年推出與行政當局所定相仿但實際可行的一套中文內碼,即大五碼(Big-5),並沿用至今。

另一說是因應當年五大中文套裝軟件─文書處理、資料庫、試算表、通訊、繪圖,使用共通中文內碼而製訂的,同樣1984年究竟有那5大中文軟件,如今亦已不可考了!

同一個中文問題,同樣叫「萬碼奔騰」,在海峽兩岸就有不同意思,日本和韓國就沒這麼頭痛,英美之間也沒這種麻煩,究竟這能否說是分裂民族的悲哀呢?

「是了,日本當時又如何解決日文輸入的問題呢?」

簡單!日本早在文書處理機時代已解決了日文機器輸入的問題,就是用拼音!日本早自唐時由漢子字發展出片假名、平假名,已經學會用拼音處理外來新名詞的一套,明治維新時更大力推廣日文五十音,這可說是島國海洋文明和古土中原大地的分別吧?

星期三, 11月 17, 2004

由ANSII到雙字節電腦

由於電腦只懂0和1,因此字母也要靠0和1來表示。英文字母有26個,加上大小草便成52個,再計入$、!、=等等符號,最少要7個0和1組成的字串(即7 bit)來表示(由0到127共128個組合),電腦內的ANSII標準便是如此。

ANSII全稱American Standard Code for Information Interchange,開宗明義是一美國標準,最初並非為電腦開發的,而是為了電報,改良摩斯密碼(Morse code)。是了,假如說二進制令你很頭痛,想一想摩斯密碼就成了。摩斯密碼的長(-)、短(.)訊號功能就類似0和1。中國的電報碼由清朝開始,按筆劃順序,用4個十位數(即0000~9999)含9999個中文字,後來還成為中文電腦的第一套內碼,在台灣稱為CNS-11643標準。

由於每個0和1稱為1 bit(位元)太麻煩了,於是又將8個0和1的二進制字組稱為1 byte(位元組/字節)。雖然英文字得7 bit字就夠放了,但IBM推出個人電腦時還是把字碼用8 bit即1 byte來處理。多出的1個bit,留在將字符變換為其他歐洲拉丁文字(例如法文、德文等,各國字母各有一套內碼)。

技術上,舊式的電腦用磁芯做記憶體,十分昂貴,自然逐bit逐bit計。到IC(集成電器)時代,微處理器已改為4 bit、8 bit、16 bit倍增上去,byte便應運而生了。有趣的是,byte的原稱是bite,但怕人們容易與bit混淆,於是IBM的Werner Buchholz便將其變字,轉成同音的byte,時為1956年。

IBM稱為International Business Machine是不錯的,早在二次大戰前已看到世界市場,甚至把產品賣到去中國。因此IBM一早看到世界市場問題,將電腦字符內碼由僅僅夠美國人用的7 bit提升到歐美人都能用的8 bit。早期Internet上收發電郵,間中會出現亂碼,就是因為7 bit與8 bit內碼之間的差異造成的。中國知名的軟件公司北大方大,當年取名「方正」,便考慮到「方正」這兩字繁、簡體一樣。許多時,格局大小之差往往在於起步時的一個小小決定。

問題是,1 byte (即8 bit)字僅有256個組合(包括0000),根本不夠中文用。中文至少要用2 byte(雙字節)才成,256 * 256 = 65536個組合,常用中文已經綽綽有餘。可惜早年技術所限,電腦記憶體矜貴,硬碟也小,加上70、80年代個人電腦蓬勃發展之時,中國剛從文革浩劫中走出來,百癈待興,電腦市場不成氣候,港英殖民政府也不重視中文,單靠台灣市場有限,IBM和Microsoft等才懶得理你。

然而,正因如此,也為海峽兩岸三地的IT人提供一個大展身手的機會。

星期一, 11月 15, 2004

踏入0和1的數位世界

說電腦天生是說英文的,先要溫習一些電腦基礎知識。

電腦只懂0和1,又稱數位/數碼(digital),0和1以外的東西都要靠0和1以二進制表示(即逢2進1),例如2就是10,3就是11,10就變成1010 (2的3次方 + 2的1次方,即8 + 2 = 10)。

將萬事變為0和1,數字明顯變長好多。就以顏色為例,我們將每種原(光)色即紅、藍、綠,各以4個0和1代表,也只能有由0至15共16層次明暗度,合共組合出來的色光,便有16 x 16 x 16 = 4096種,而每種在數位世界都會編上12個0和1組成的編碼代表,又稱12 bit color,因電腦上1個位(即0或1)又稱之為1 bit。原本在10進制4個位就能代指有餘的色彩,在2進制的數位世界卻要12個位才能便達齊全,你說麻煩不麻煩。

事實上,人類的眼睛或可看到24bit色彩,即共一千六百七十多萬種色光,在電腦上要用24個0和1去表示每一種,又稱為真彩(ture color)。印刷上因為採CMYK (紅、青、黃、黑)四色油墨顏料,各有256種深淺層次要以8個0和1去代表,合共32bit,又再多8個0和1。

但變為0和1有一樣好處,就是可以代指對(true)和錯(false),這樣就可對應遑邏輯運算中的真值表(true false table),讓機器去運算了。

另外萬事化成0和1,非0即1,機器不必處理那麼多數值,只要反覆運算就成了。假如速度夠快,便可彌補數字變長了的缺點,甚至以之前人用十進制計數還要快。

事實上,十進制也不是必然的,只因切合人類的手指數目自然演化出來。由於圓不易被10等分,因此隨圓形人們很早便衍生出12進制、360度,以至radian ( π radian等於180度,2 π radian剛好等同圓周,換言之1 radian的圓周弧長剛好和圓的直徑相等)等,像一天24小時便沿用至今。

星期四, 11月 11, 2004

電腦天生就是說英文的

記得97之前,當時仍發展火紅的AST Research公司有次在香港推出家庭電腦,但僅得英文Windows。那時我仍是一位小小腦記,便問有關方面會計劃推出中文家庭電腦嗎?對方說:「沒必要!」

如今AST已灰飛煙滅,但不要笑,即使2000年後,Sony在香港的行貨VAIO notebook,有好長時間亦僅提供英文Windows,這並非個別事例。

沒有中文化的個人電腦能在華人社區普及嗎?包括像香港這種西化兼華洋雜處的社會?

答案是不可能!今天你看,絕大部份市售電腦均已配備中文作業系統。除了因為技術進步外,不得不說這也是97帶來的一個轉變,至少加速了這個轉變吧?

近年來一直有一感覺,個人電腦的普及,其實是世界經濟全球化的重要一環。而世界各地面對個人電腦之時的種種作為,實則也反映了全球化的效益、問題與影響。

其他國家的情況不知道,大中華區的歷史倒親歷一二。由早期的台灣倚天和中國WPS,都今天Wintel一統天下,當中有許多經驗,值得我們記錄下來。

想想,這篇網誌在英文為主的Blogger發表,某程度也預示了中文電腦尚未竟全功,而這並非技術問題,而是有環球政經的因素在背後主導。