| 此條目需要更新。 (2019年2月13日) 請更新本文以反映近況和新增内容。完成修改後請移除本模板。 |
中文軟體指的是專門為了中文資訊處理使用所設計的軟體。包含但不侷限於中文系統(外掛)、中文輸入法、中文字形、中文自然語言處理、中文編程語言,如周蟒(ZhPy)等。
中文系統與中文軟體
中文系統一般為外掛形態,如DOS時代的使用倚天中文系統,或是採用特殊版本的軟體,如必須使用中文Win2000。此外更麻煩的是,輸入時必須採用特殊的輸入法,因此中文系統在運作上必須考慮漢字特性、漢字語碼、漢字輸入、漢字輸出等。
漢字特性
除了某些系統(如王安系統)外,目前大部份的系統漢字佔用2Byte,是英數字的兩倍。另外配合漢字顯示,英數字可分成全形半形、全形之英數字(包含空白)是以特殊符號方式處理,與半形之英數字與法通用,半形的英數字可以被系統直接快速處理。
漢字語碼
外碼(External Code)
亦即輸入法之按鍵次序,輸入法不同,按鍵次序(即外碼)隨而不同。
內碼(Internal Code)
因為電腦廠牌不同,電腦內漢字碼可能不同,此即內碼。
交換碼(Exchange Code)
目前最普遍的交換碼即統一碼。
漢字輸入
台灣地區
港澳地區
中國大陸地區
漢字輸出
包括字型(font)與字形以及字體。「字形」(glyph)指單個字(字母、漢字、符號等)的形體。
所謂「字體」(typeface)與「字型」(font),都是排印學與書法領域的專有名詞。無論港澳台、中國大陸還是歐美等國非專業普通人士都無法區分作為專業名詞的「字體」(typeface)與「字型」(font)。
點陣字型(Dot-matrix Fonts)
點陣(dot-matrix)或稱位圖(Bitmap),意即像素陣列(pixel array)。缺點是縮放時會有鋸齒邊,因此後來進化成向量字。
向量字型(Vector Fonts)
包括向量字/矢量字體(Vector Fonts/Outline Fonts)、向量圖/矢量圖形(Vector Graphics)。由於每個字型都透過數學向量式(線性代數)來描述,因此可以自由縮放比例。缺點是需要較多的計算時間,同時字型放大過量也會產生稜角而影響美觀。
曲線描邊字型(Stroke Fonts/TTF/serif白體字)
又名襯線字。如羅馬體字、宋體字。由於使用曲線公式(非線性式)來描繪字框,因此任何縮放比例都一樣平滑,與向量字在數學式的主要區別在於曲率(數學符號為Kappa:κ),曲率κ=0即直線,曲率κ≠0即曲線。缺點是計算耗時更久。
- 常見的形式包括印刷用的Postscript與螢幕顯示的True type font(TTF)等。
- TrueType(TTF)字体中的字符(或字形)轮廓由直线和二次貝塞爾曲線(bézier)片段构成。这些构建在数学上比平面设计界PostScript使用的三次贝塞尔曲线(也被Type 1字体所使用)更容易处理。尽管如此,对于多数形状,三次要比二次贝塞尔曲线需要更多的点来描述。这个差异也意味着它不能将Type 1无损地转换为TrueType格式,可是你可以无损地将TrueType转换为Type 1。
無描邊字型(sans-serif黑體字)
又名無襯線字,如歌德體字。
中文軟體發展歷程
國際漢字主流內碼
Big5大五碼(台港澳專用)
- Big5碼的產生,是因為當時個人電腦沒有共通的內碼,導致廠商推出的中文應用軟體無法推廣,並且與IBM 5550、王安碼等內碼,彼此不能兼容;另一方面,台灣當時尚未推出中文編碼標準。在這樣的時空背景下,為了使台灣早日進入資訊時代,所採行的一個計畫;同時,這個計畫對於以台灣為核心的亞洲繁體漢字圈也產生了久遠的影響。
- Big5產生前,研發中文電腦的朱邦復認為內碼字集應該廣納所有的正異體字,以顧及如戶政等應用上的需要,故在當時的內碼會議中,建議希望採用他的五萬多字的字庫。工程師認為雖其技術可行,但是三個位元組(超過兩個位元組以上)長度的內碼卻會造成英文螢幕畫面映射成中文畫面會發生文字無法對齊的問題,因為當時盛行之倚天中文系統畫面係以兩個位元組文字寬度映射成一個中文字圖樣,英文軟體中只要以兩個英文字寬度去顯示一個中文字,畫面就不會亂掉,造成中文系統業者偏愛二個位元組長度的內碼[12];此外以倉頡輸入碼壓縮成的內碼不具排序等功能,因此未被採用。1983年有人誣指朱邦復為共產黨,其研究成果更不可能獲採用。[13]
- 在Big5碼誕生後,大部分台灣的電腦軟體都使用了Big5碼,加上後來倚天中文系統的高度普及,使後來的微軟Windows 3.x等亦予以採用。雖然後來台灣還有各種想要取代Big5碼,像是倚天中文系統所推行的倚天碼、台北市電腦公會所推動的公會碼等,但是由於Big5字碼已沿用多年,因此在習慣不易改變的情況下,始終無法成為主流字碼。而台灣後來發展的國家標準CNS 11643中文標準交換碼由於非一般的內碼系統,是以交換使用為目的,受先天所限,必須使用至少三個位元組來表示一個漢字,所以普及率遠遠不及Big5碼。
- 現在,除了台灣外,其他使用繁體漢字的地區,如香港、澳門,及使用繁體漢字的海外華人,都曾普遍使用Big5碼做為中文內碼及交換碼。
GB 18030國標碼(中國大陸專用)
GB 18030主要有以下特点:
- 與 UTF-8 相同,采用多字节编码,每个字可以由1个、2个或4个字节组成。
- 编码空间庞大,最多可定义161万个字元。
- 支持中国国內少数民族的文字,不需要动用造字区。
- 汉字收录范围包含繁体汉字以及日韩汉字。
本规格的初版是由中华人民共和国信息产业部电子工业标准化研究所起草,由国家质量技术监督局于2000年3月17日发布。现行版本为国家质量监督检验总局和中国国家标准化管理委员会于2005年11月8日发布,2006年5月1日实施。
此标准内的单字节编码部分、双字节编码部分,和四字节编码部分收录的中日韩统一表意文字扩展A区汉字,为强制性标准。其他部分则属于规模性标准。在中华人民共和国境内所有软件产品,都需要支持这个同时包含单字节、双字节和四字节编码的规格。
微软视窗代码页为 54936。
漢字總碼(Unihan)
- 共收漢字與類漢字74617字(2012),較清初《康熙字典》原有的漢字47035字幾乎多了一倍。包括中日韓越台港澳等各種形式的漢字與類漢字,其中類漢字包括越南字喃、日本和製漢字(與假名相對的真名Mana)、朝鮮漢字特殊字形、港澳粵書、台灣喃書。
- 中日韓統一表意文字(英語:CJK Unified Ideographs),也稱漢字總碼(英語:Unihan),目的是要把分別來自中文、日文、韓文、越南文、壮文中,起源相同、本義相同、形狀一樣或稍異的表意文字,賦予其在ISO 10646及統一碼標準中相同編碼。
- 所謂「起源相同、本義相同、形狀一樣或稍異的表意文字」,主要為汉字,包括繁體字(台港澳用字)、簡體字(中國大陸用字)、日本漢字(漢字/かんじ)、韓國漢字(漢字/한자)、越南的喃字(𡨸喃/Chữ Nôm)與儒字(𡨸儒/Chữ Nho)、方塊壯字。
- 此計劃原本只包含中文、日文及韓文中所使用的漢字,舊稱中日韓(CJK)統一表意文字(Unified Ideographs)。後來,此計劃加入了越南文的喃字,所以合稱中日韓越(CJKV)統一表意文字。
作業系統
視窗軟體
DOS時代的中文軟體
- 中文DOS
- 中文化軟體的方式
- 對於DOS下的各應用程式,使用PC-Tools或DOS內附送的Debug.exe,做檔案內的字串取代。此僅為改變應用程式的字串,實際顯示中文仍須使用「中文系統」。
- 針對中文的顯示,使用改寫Int 10的常駐程式,對於使用Int 10進行顯示的字串做攔截處理。(此為下列各中文系統的運作原理)
- 著名的中文系統
DOS上使用中文的問題
- 顯示卡的兼容問題:國外出產的知名顯示卡(特別是ATI或外國牌子機,如HP或Compaq的電腦)經常都出現顯示問題,例如:只能顯示中文畫面的上半部份。
- 記憶體相衝問題:由於中文系統利用特殊的記憶體映射方式來重新安排顯示卡的記憶,有不少為求效率而犧牲兼容性的軟體當直接存取記憶時,都會與中文系統相衝。這些相衝現場輕則使畫面紊亂,重則使電腦當機。
Windows上的中文軟體
中文系統
在Windows使用中文主要有三種方式:
- 使用外掛的中文系統:在早期非中文版本的Windows系統,這是使用中文的唯一方式。如雙橋中文。
- 傳統內碼的中文版Windows:Windows 3.1及Win95、Win98都有針對Big5及GB碼開發的中文系統。
- 使用統一碼:現代的Windows系統都有多國語言的支援。(自Win95開始,Windows已出現統一碼的局部支援)
軟體中文化的方式
- 記憶體修補(由於後期的Windows對於.code的記憶體區間有寫入保護,故要進行記憶體修補改的外掛程式要先提高自身在Windows內的權限等級,並開起系統的Debug旗標後,方可寫入)
- 程式資源檔的字串取代(使用資源檔編輯器,有Win16、Win32、.Net,這三大類工具)
- Hook API(攔截與字型或字串相關的Win32 API)
- 取得原始程式後,進行改寫(例如:原始程式內的字串翻譯成中文,以及更改程式在顯示字型時的相關設定)
- Exe或Dll檔內的字串取代(使用可以編輯二進位檔案的工具)
有代表性的中文軟體
Unix終端機的中文軟體
X視窗的中文軟體
現代的X視窗系統,中文支援主要是依頼
- C library內建的多語文支援,
- X或X toolkit的多語文輸出功能(即X的fontset機制、或GTK或Qt等toolkit的多語文顯示的支援等等),和
- X或X toolkit的多語文輸入功能(即X的XIM機制、或GTK的軟體的GTK輸入模組機制等等)。
個別軟體可能會支援或需要其他特別或較為少用的中文輸入機制。
使用者在選擇處理中文輸入的軟件比軟有自由度。在類Unix的自由作業系統,目前比較普遍的輸入軟件包括蘇哲的SCIM。
早期的中文軟體
早期的X視窗系統並無有系統的中文支援,中文軟體只能透過中文化的終端機模擬器,在文字介面運作,而中文輸入也須透過終端機模擬器的中文輸入功能。情況類似DOS的中文系統。
最早的X視窗中文軟體是修改自xterm的cxterm(Chinese xterm)終端機模擬器。
Linux開始普遍後,cxterm不久就被改自rxvt的crxvt取代,而導致crxvt被取代的其中一個因素,是crxvt因並非自由軟體,在授權上出現了問題。中文輸入法和終端機模擬器分開,也是由crxvt開始。crxvt和rxvt後來合併,合併後的版本改稱rxvt。
X視窗系統開始有普遍性的中文支援是在各種Unix的C library採取普遍性的多語文支援時開始;普遍性的多語文支援令中文輸入可以透過標準的XIM機制,而毋須採取類似Windows的外掛中文系統一類的方法。
掌上型裝置上的中文軟體
- Palm上的中文使用
- Pocket PC上的中文使用
- 其它PDA上的中文使用
- 手機上的中文使用
參考來源