扫一扫
关注微信公众号

Linux下的中文输入法简介
2009-05-22   51CTO

1、纯文字模式下的中文输入:

◆一般而言,文字模式下的输入法并没有特殊的规范或协议,程序所要做的,只有取得使用者的字键输入,再将中文输出到「标准输出 (standard out)」管道,系统自然会将这些文字喂入应用程序中。只要应用程序能够接受并处理 8位字符码,则不会有任何问题。

2、X Window 下的中文输入:

2.1. XIM 协定:

◆在 X Window 的图形接口底下,由于各程序间的交互作用是以「窗口」为单位,它们可以藉由标准的 X 协议达到彼此间的沟通,故我们自然而然地可以将中文终端机程序与输入法本身分开发展(输入与输出是两个独立的应用程序,可以通过X协议来传递数据),而不再需要像纯文字模式下将二者绑在一起 (在早期确有将二者绑在一起的解决方案,如 cxterm,它是直接自 XWindow 的标准终端机程序 xterm 修改而来),如此在一个图形桌面上只需执行一个中文输入法,就可以对许多中文终端机程序提供中文输入的服务,不但节省系统资源,同时模块化的开发模式也让后续维护工作容易得多。

◆然而,在 X Window 下的输入法所面临的问题却比纯文字下要复杂许多。由于考虑到程序国际化等方面的问题,故 X Window 定义了一组标准的输入法协议,称之为 XIM (X Input Method) 协定。此协议是架构在程序国际化 (I18N) 与系统的地区环境 (locale) 之上的,故只要遵守此协议,则应用程序就可以在不需修改程序代码的原则下,接受来自各种语系输入法程序的文字输入。

◆与纯文字输入方式不同的是,在这里输入法程序不预先拦截使用者的字键输入。而应用程序与输入法程序之间的关系,就好像客户端与伺服端一样,应用程序提出输入请求,则输入法程序提供输入服务。因此,当我们对一个窗口做中文输入时,实际上敲入的字键是直接送往应用程序本身,而应用程序在处理它之前,会先经由 XIM 协议将这些字键序列送往输入法程序,然后由输入法程序那边取得中文字。故在此协议下,应用程序又称之为 ``XIM client'',而输入法程序又称之为 ``XIM server''。

◆在一个 ``X Window 的显示设备 (display)'' 中 (这里意指一个屏幕、一个键盘,再加一个鼠标,也就是一个 X Window 终端桌上环境),可以同时执行好几个 XIM server,它们可以输出不同语系的文字 (例如有的可以用来打中文,有的可以打日文),或其中有几个可以输出相同语系的文字。而 XIM client 要选那一个 XIM server 来使用,必须透过以下两个环境变量的设定:

export LC_CTYPE=
export XMODIFIERS="@im={XIM server 名称}"

其中前者指定了语系环境,后者指定了要用那一个输入法程序。所有的 XIM client在启动之前必须先有上述的环境变量设定,启动后才能接受该 XIM server 的输入。

◆一般 XIM server 所显示的信息可以分成以下三类:

A. 组字信息: 显示于 XIM server 组字的过程中。

B. 状态信息: 显示 XIM server 目前的状态。

C. 其它辅助信息: 例如菜单选单或在线文件说明等。

其中依组字与状态信息显示的位置不同,就形成了各种操作接口 (input style),

◆供使用者方便使用。其中包括:

A. Root: 此信息显示在 XIM server 的主窗口内。

B. OverTheSpot: XIM server 会在 XIM client 的输入光标附近开启一个小窗口,以显示组字信息。如此使用者在打字过程中眼睛就不需老看XIM server 主窗口组字信息。

C. OffTheSpot: XIM client 会在自己的窗口中开出一块区域,让 XIM server来显示其组字信息。此区域通常是在 XIM client 窗口的底下。

D. OnTheSpot: XIM server 提供必要的数据给 XIM client,让它用自己的方法来画 XIM server 的组字信息。这通常是给有特别需求的 XIMclient 选用。

◆其中 Root 模式是最简单的方式,一般而言所有的 XIM server 与 XIM client都会支持,至于其它的模式则不一定。必须 XIM server 与 XIM client 都同时支持的模式才使用。如二者同时支持几种模式,当二者开始连系,准备让使用者输入时,它们就会先协调,以挑选最佳模式用。很多时候使用者可以在 XIM client 这指定要使用那一种模式。

2.2. XCIN (X Chinese INput method):

A、支持 BIG5, BIG5HKSCS, 与 GB2312 等多种编码方式。使用时只要在不同的地区环境 (LC_CTYPE) 下启动它,即可自动采用该语系的编码来做输入。

B、支持动态外挂式输入模块,让我们可以依需要开发不同的输入法模块,以支持不同的输入法。

C、支持多种输入法。

D、支持 Xi18n, XIM 协议与 Root 和 OverTheSpot 输入模式。

E、拥有丰富多样使用者自定选项。

F、可以跨平台编译执行,其中包括 GNU/Linux, FreeBSD 与 HP-UX。

2.3. Chinput

◆这是一个针对 GB 编码与大陆地区使用者习惯而设计的中文输入法,它是以 cxterm 为基础发展出来的。它同样支持 XIM 协议,与 XCIN 相较,它具备较佳的拼音输入功能,有较好的图形操作接口,同时也支持 GB、Big5、JIS(一种日文的编码) 与 KS (一种韩文的编码) 等编码方式,以及许多常见的输入法表格和方便的输入功能,是一支相当优秀的中文输入法程序。

热词搜索:

上一篇:如何保护无线网络安全?
下一篇:Linux系统中文版优势大PK 谁将是主流?

分享到: 收藏