中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 其它操作系统综合讨论区 » 请问:Linux下支持中文吗?
作者:
标题: 请问:Linux下支持中文吗? 上一主题 | 下一主题
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『楼 主』:  请问:Linux下支持中文吗?

请问大家,纯Linux下(非X-WIN这个大型的GUI下)倒底支持中文显示或中文输入吗?DOS下的汉字系统有一大堆(如UCDOS、CCDOS97、TW、AW97等),Linux下倒底有没有汉字系统呀?有没有办法显示中文呀?



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-8-7 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
Roy
管理员

專業島民



积分 4869
发帖 1633
注册 2002-12-10
状态 离线
『第 2 楼』:  

jmcce



我的網站:http://mw16.2ya.com/ 我的網誌: http://scrappedblog.blogspot.com/
~
我的Winamp正在播放的歌曲:
2003-8-7 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Roy
管理员

專業島民



积分 4869
发帖 1633
注册 2002-12-10
状态 离线
『第 3 楼』:  

中文輸入:
(作者: 謝東翰)
--------------------------

由於一般電腦鍵盤上的字鍵數目有限,多半 (遠) 少於地區語文所需的文字或符號
的數目,使得在很多情況下無法做到一個按鍵就對應一個「字」或符號。對於使用
拼音語系的地區而言,由於基本的拼音字母較少,因此可以藉由功能鍵改變鍵盤狀
態,讓同一個字鍵在不同狀態下輸出不同的字母。例如在我們一般的鍵盤中,
CapsLock 關閉的情況下可以打出小寫英文字母,反之可以打出大寫英文字母。

然而,到了非拼音語系的地區,特別是亞洲語系的國家,光是藉由上述方式也不足
以打出所有的文字與符號了,故在這些地區中通常需要藉由「輸入法程式」來完成
文字輸入的工作。一個輸入法程式主要的工作是攔截使用者所敲入的字鍵序列,經
由查表或其他方式將這些字鍵序列轉換成該地區文字符號,然後才輸出至應用程式。
此字鍵序列與文字符號之間的對應關係,就形成了各式各樣的輸入法。而逐一將字
鍵序列組合出一個個文字符號的過程,就稱之為「組字」。

大體而言,我們的「中文輸入」就是以上述的方式達成的。以下我們就針對 GNU/Linux
與 FreeBSD 等自由 UNIX 作業系統來談中文輸入的解決方案。


(I) 純文字模式下的中文輸入:

在早期電腦的記憶體與運算能力仍十分有限的時候,若要執行 X Window 系統多半無
法達到令人滿意的效能,故那時候的操作環境多半是在純文字模式之下,而純文字模
式下的中文輸入方案也應需求而一一出現。

在此模式下,由於一般的純文字終端機程式只能顯示英文,故當我們嘗試用中文輸入
法程式來輸入中文時,我們必須連帶要設法讓文字終端機也能顯示中文,如此才有意
義。因此,在此模式下的輸入法程式通常會與一個可以顯示中文的文字終端機程式連
在一起,啟動它後就等於進入了一個「中文輸入與顯示」的環境。而且,一個能顯示
中文字的中文終端機程式,往往比輸入法本身還要重要。

一般而言,文字模式下的輸入法並沒有特殊的規範或協定,程式所要做的,只有取
得使用者的字鍵輸入,再將中文輸出到「標準輸出 (standard out)」管道,系統
自然會將這些文字餵入應用程式中。只要應用程式能夠接受並處理 8 位元字元碼,
則原則上就能達到中文處理的功能。

這類文字模式下的中文輸入法與中文終端機程式種類很多,早期以王佑中先生所發展
的 chdrv 為主要的代表,它是一個 GNU/Linux 下的中文終端機、輸入法的程式。另
一個在同時期的類似程式為 yact, 它與 chdrv 的不同點在於 chdrv 是直接去控制
tty 裝置以模擬出中文終端機,而 yact 卻是以顯示卡繪圖函式庫 svgalib 為基礎,
將純文字模式的終端機轉為圖形模式以顯示中文字。這些早期的中文輸入系統各自有
其缺點,而隨著時間的流逝也漸漸沒有在維護了,但其他類似的中文軟體卻相繼出現。
它們或是以早期的中文輸入系統為基礎,針對其缺點加以修正,或是引進新的設計概
念,使其有較好的功能與較多的輸入法支援。這類的軟體包括 bcs16、jmce、jmcce ....
等。至於 FreeBSD 系統上,有早期常見的 big5con,以及後來出現的可顯示、輸入
GB 碼的中文終端機程式 cce .... 等。

這類用於純文字模式下的中文輸入系統,由於需要將原本的文字顯示轉為圖形顯示,
如此才能畫中文字。然而轉換成圖形顯示的方式可能依系統的不同而有不同,例如同
樣在 x86 系統下執行的 GNU/Linux 與 FreeBSD 系統,它們在處理終端機程式的方式
不盡相同,而且對硬體顯示卡的控制方式也有差異,這使得分別針對這些系統所設計
的中文終端機程式不容易移植到其他系統上去,甚至同樣在 GNU/Linux 平台上,為
x86 系統所設計的也無法在其他硬體平台上編譯後執行。這一點與以下將介紹的 X
Window 環境下的中文輸入法程式有很大的不同。儘管如此,這些不同的中文輸入系統
仍在原始碼的層次上互相截長補短,彼此吸收對方的優點。例如最近才出現的 jmcce,
它就是改進自 bcs16、cce、與 jmce 等中文輸入系統,而這也正是自由軟體世界中分
享、互惠精神的一個很好的範例。



(II) X Window 下的中文輸入:

A. XIM 協定:

由於近來電腦硬體的進步,使得執行 X Window 系統漸漸可以達到令人滿意的效能,
同時在一般情況下使用圖形操作介面往往比純文字的操作介面方便,故有越來越多的
使用者轉向使用 X Window 的環境,使用 X Window 下的中文終端機程式與中文輸入
法。因此在相對上,純文字模式的中文輸入法使用者較少了,而 X Window 下的輸入
法發展則日漸蓬勃起來。

在 X Window 的圖形介面底下,由於各程式間的交互作用是以「視窗」為單位,它們
可以藉由標準的 X 協定達到彼此間的溝通,故我們自然而然地可以將中文終端機程
式與輸入法本身分開發展,而不再需要像純文字模式下將二者綁在一起 (然而在早期
的確有將二者綁在一起的解決方案,如 cxterm,它是直接自 X Window 的標準終端
機程式 xterm 修改而來),如此在一個圖形桌面上只需執行一個中文輸入法,就可以
對許多中文終端機程式提供中文輸入的服務,不但節省系統資源,同時模組化的開發
模式也讓後續維護工作容易得多。

然而,在 X Window 下的輸入法所面臨的問題卻比純文字下要複雜許多。由於考慮到
程式國際化等方面的問題,故 X Window 定義了一組標準的輸入法協定,稱之為 XIM
(X Input Method) 協定。此協定是架構在程式國際化 (I18N) 與系統區域化資料庫
(locale) 之上的,故只要遵守此協定,則應用程式就可以在不需修改程式碼的原則
下,接受來自各種語系輸入法程式的文字輸入。

與純文字輸入方式不同的是,在這裡輸入法程式不預先攔截使用者的字鍵輸入。而應
用程式與輸入法程式之間的關係,就好像客服端與伺服端一樣,應用程式提出輸入請
求,則輸入法程式提供輸入服務。因此,當我們對一個視窗做中文輸入時,實際上敲
入的字鍵是直接送往應用程式本身,而應用程式在處理它之前,會先經由 XIM 協定
將這些字鍵序列送往輸入法程式,然後由輸入法程式那邊取得中文字。故在此協定下,
應用程式又稱之為 "XIM client" (例如上述的中文終端機程式即屬於 XIM client),
而輸入法程式則稱之為 "XIM server"。

在一個 "X Window 的顯示設備 (display)" 中 (這裡意指一個螢幕、一個鍵盤,再加
一個滑鼠,也就是一個 X Window 終端桌上環境),可以同時執行好幾個 XIM server,
它們可以輸出不同語系的文字 (例如有的可以用來打中文,有的可以打日文),或其中
有幾個可以輸出相同語系的文字。而 XIM client 要選那一個 XIM server 來使用,必
須透過以下兩個環境變數的設定:

        export LC_CTYPE=
        export XMODIFIERS="@im="

其中前者指定了語系環境,後者指定了要用那一個輸入法程式。所有的 XIM client
在啟動之前必須先有上述的環境變數設定,啟動後才能接受該 XIM server 的輸入。

一般 XIM server 所顯示的資訊可以分成以下三類:

1. 組字資訊: 顯示於 XIM server 組字的過程中。
2. 狀態資訊: 顯示 XIM server 目前的狀態。
3. 其他輔助資訊: 例如功能表選單或線上文件說明等。

其中依組字與狀態資訊顯示的位置不同,就形成了各種操作介面 (input style),供
使用者方便使用。其中包括:

1. Root: 此二資訊都顯示在 XIM server 的主視窗內。

2. OverTheSpot: XIM server 會在 XIM client 的輸入游標附近開啟一個小視窗,
        以顯示組字資訊。如此使用者在打字過程中眼睛就不需要時時去看 XIM
        server 主視窗的組字資訊。

3. OffTheSpot: XIM client 會在自己的視窗中開出一塊區域,讓 XIM server 來
        顯示其組字資訊。此區域通常是在 XIM client 視窗的底下。

4. OnTheSpot: XIM server 提供必要的資料給 XIM client,讓它用自己的方法來
        畫 XIM server 的組字資訊。這通常是給有特別需求的 XIM client 選用。

其中 Root 模式是最簡單的方式,一般而言所有的 XIM server 與 XIM client 都會
支援,至於其他的模式則不一定。必須 XIM server 與 XIM client 都同時支援的模
式才能使用。如果二者同時支援幾種模式,則當二者開始連繫,準備讓使用者輸入時,
它們就會先協調好,以挑選最佳的模式來用。當然,很多時候使用者也可以在 XIM
client 這邊指定要使用那一種模式。

由於 X Window 環境下有較好的人機介面,因此大部分的輸入法程式都是在 X Window
下運作的。早期的輸入法程式可能不支援 XIM 協定,但近年來新發展的輸入法程式幾
乎都支援 XIM 協定,以下就幾種常見、可以做中文輸入的輸入法程式稍作介紹。


B. XCIN (X Chinese INput method):

XCIN (http://xcin.linux.org.tw) 可能是台灣地區最普級的一個輸入法程式。它最
早期是由 劉德華 (Edward Der-Hua Liu) 先生發展的 (1994 年 10 月),那時它並
不支援 XIM 協定,直到 1999 年全新改寫後才開始支援。歷經多年的延革,並加入
了多位網友的貢獻,使它逐漸成為一個穩定且功能齊備的輸入法程式。其特色包括:

1. 支援 BIG5, BIG5HKSCS, 與 GB2312 等多種編碼方式。使用時只要在不同的區域
   化資料庫環境 (LC_CTYPE) 下啟動它,即可自動採用該語系的編碼來做輸入。

2. 支援動態外掛式輸入模組,讓我們可以依需要開發不同的輸入法模組,以支援不
   同的輸入法。目前 XCIN 套件內含三個輸入法模組:

   a. zh_hex:  內碼輸入模組。
   b. gen_inp: 一般性輸入法模組,以查表方式進行組字,適用於字根類型的輸入法。
   c. bimsphone: 自動猜字注音輸入法。它以 libtabe 做為猜字引擎,經由字詞的分
        析辭庫查詢完成自動猜字動作。

   除此之外,由其他計畫所發展的 XCIN 輸入法模組計有:

   a. 酷音中音輸入法 (http://chewing.oio.cx/):
        它是由中研際資訊所徐讚昇博士指導、龔律全與陳康本所設計的輸入法模組。
        它也是一個自動猜字的注音輸入法,擁有比 bimsphone 更方便的功能,使用
        上與 Microsoft 平台上常見的自然輸入法很接近。

3. 支援多種輸入法。除了上述的內碼輸入與自動猜字注音輸入法以外,還支援了:

   a. 倉頡輸入法        (BIG5, BIG5HKSCS, GB2312)
   b. 行列 30 輸入法        (BIG5)
   c. 拼音輸入法        (BIG5, GB2312)
   d. 簡易輸入法        (BIG5)
   e. 一般注音輸入法        (BIG5, GB2312)
   f. 雙拼輸入法        (GB2312)
   g. 五筆輸入法        (GB2312)

   另外,一些商業公司也提供了適當的輸入法表格,在其特定的版權限制下,可以
   在 XCIN 底下使用。其中包括了大易輸入法、嘸蝦米輸入法 .... 等等。

4. 支援 Xi18n, XIM 協定與 Root 和 OverTheSpot 輸入模式。

5. 擁有豐富多樣使用者自定選項。

6. 可以跨平台編譯執行,其中包括 GNU/Linux, FreeBSD 與 HP-UX。

當然,XCIN 仍不是一個完美的程式,未來仍有相當大的改善空間,主要包括: Unicode
與更多編碼系統的支援、輸入法模組功能改進、可同時處理多區域化資料庫的 XIM
client 請求、更多 UNIX 平台的移植等等。


C. Chinput

這是一個針對 GB 編碼與大陸地區使用者習慣而設計的中文輸入法,其設計者為于明儉
先生。它是以 cxterm 為基礎發展出來的。它同樣支援 XIM 協定,與 XCIN 相較,它
具備較佳的拼音輸入功能,有較好的圖形操作介面,同時也支援 GB、Big5、JIS (一種
日文的編碼) 與 KS (一種韓文的編碼) 等編碼方式,以及許多常見的輸入法表格和方
便的輸入功能,是一支相當優秀的中文輸入法程式。



參考資料:

1. Xlib Programming Manual, 作者: Adrian Nye, 出版者: O'Reilly,
   ISBN 1-56592-002-3

2. XCIN 發展計畫: http://xcin.linux.org.tw

3. libtabe 計畫: http://libtabe.sourceforge.net/,
                 http://xcin.linux.org.tw/libtabe/

4. 酷音輸入法計畫: http://chewing.oio.cx

5. Chinput: http://www.lslnet.com/linux/ch/chinput.html

6. 中文 HOTWO:
   http://www.linuxdoc.org/HOWTO/Chinese-HOWTO.html
   http://www.linux.org.tw/CLDP/Chinese-HOWTO.html

7. jmcce: http://www.t-linux.com.tw/jmcce





我的網站:http://mw16.2ya.com/ 我的網誌: http://scrappedblog.blogspot.com/
~
我的Winamp正在播放的歌曲:
2003-8-7 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
LanE
银牌会员




积分 1833
发帖 648
注册 2002-11-8
状态 离线
『第 4 楼』:  

我用的是zhcon,感觉还不错

2003-8-7 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9367907)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27736
发帖 10521
注册 2002-10-9
状态 离线
『第 5 楼』:  



  Quote:
以下是引用LanE在2003-8-7 18:01:20的发言:
我用的是zhcon,感觉还不错

请问zhcon怎么安装?怎么用?谢谢!



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-8-7 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
LanE
银牌会员




积分 1833
发帖 648
注册 2002-11-8
状态 离线
『第 6 楼』:  

去网上搜索一下,就能找到它的二进制包或者是源代码包,我是用源代码装的,里面有说明文件,很容易懂的:)

2003-8-8 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9367907)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: