FreeBSD連載(53):中文X伺服器

1999年12月25日 12:50 王波

中文X伺服器

  除了在X11的庫函數級漢化,以支持顯示中文的能力之外,另一種使 X Window系統顯示中文的方法是在X伺服器級進行漢化。漢化X伺服器就使得 所有的西文軟體能正常顯示中文,當然它必須沒有對8位字符進行特殊的過 濾處理。並且由於是在伺服器低層對中文進行支持,因此速度和兼容性也很 好。XFree86的漢化版本稱為CXwin,也是由台灣開發者首先進行開發,目前 移植到GB的版本為CXwin 0.5。

  為了安裝CXwin,必須重新編譯X Server,這樣首先就要下載XFree86 的伺服器源程序,展開後使用Patch命令打上CXwin的補丁後,重新編譯X服務 器。最後才能生成針對不同硬體的中文X伺服器,那麼就可以使用CXwin的X 伺服器代替原有的同樣硬體的X伺服器,在X Window下就能夠正常顯示中文 了。

  X伺服器被放到/usr/X11R6/bin目錄下,例如S3顯示卡對應的X服務 器為XF86_S3,需要使用同名的CXwin伺服器替換原有的程序。除了標準的 XFree86的設置檔案之外,CXwin還使用配置檔案/etc/X11/ChineseConfig來 設置中文字體等設置,一般預設設置檔案就能滿足正確顯示中文的要求。由 於CXWin是直接替換原有的X伺服器,因此必須保証安裝CXwin之前XFree86已 經安裝和設置正常了。

  從顯示效果來看,CXwin 0.5有最佳的顯示效果,會根據不同英文字 體大小而選擇對應大小的中文字體,因此除了有時由於漢字字體過大而使得 字體被切去一部分之外,對於字體的大小和間距處理的最好。然而中文輸入 還要依靠XA或Chinput。因此最佳的效果應該是使用CXwin用於基本顯示,XA 或Chinput用於包裝某個應用程序,提供中文輸入,並設置了中文為預設語 言的KDE作桌面環境。有了這些之後,FreeBSD系統就具有了中文桌面操作環 境的基本中文處理能力了。

  為了利用CXwin的顯示,而不被包裝軟體截去中文顯示能力,最好使 用不帶中文顯示能力的xa(無CV代碼)來管理中文輸入。此外,Chinput也 使用了多種不同大小的字體來提供輸出,其顯示效果也不錯。帶CV能力的xa 使用字體縮放技術來產生合適大小的字體,但字體縮放會消耗額外的系統資 源。ZhXwin最簡單,適合簡單瀏覽中文的情況 。

  由於CXwin需要針對每個不同的X伺服器進行修改,因此對於不同的X 伺服器,其顯示效果存在差異,有的X伺服器具有相當不錯的顯示效果,而有 的效果較差,或不能正常顯示,而有的X伺服器還不支持中文顯示能力。需要 隨著CXwin的進一步發展,各個問題才會被逐漸解決。