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 (一种韩文的编码) 等编码方式,以及许多常见的输入法表格和方便的输入功能,是一支相当优秀的中文输入法程序。
【相关文章】
|
|||
| · 华为、贝恩资本22亿美.. · McWill、WiMAX、3G博弈 · Ubuntu 中文开源频道 · 服务器虚拟化 · AMD Phenom三核处理器.. · Groovy开发技术 · 龙芯要做中国的“奔腾” · 刀片服务器基础 |
· 服务器基础知识入门 · VC++基础开发专题 · CISSP认证成长之路 · ARP攻击防范与解决方案 · 网管系统介绍 · 网络管理系统如何支撑I.. · 51CTO国庆充电专题之好.. · 网络技术经典基础教程 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · 刀片服务器基础 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 刀片服务器基础 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·10月第3周回顾:微软挤入.. ·10月第2周回顾:SAP“被.. |
·强烈质疑“步行1公里就能.. ·国庆期间新闻回顾:微软.. |
| ·10月第3周安全回顾 中小.. ·10月第2周安全回顾 Web安.. |
·J0ker的CISSP之路:复习-I.. ·10月第1周安全回顾 微软.. |
| · 华为、贝恩资本22亿美元.. · NGN:下一代网络 · 网络访问中断大排查 |
· 防范脚本入侵攻击,你做.. · Microsoft SQL Server S.. · 如何利用隔离交换技术搭.. |
| · 程序员如何成长? · Groovy开发技术 · C++是垃圾语言?! |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 微软在欧盟反垄断中输掉.. · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 |
· 微软在欧盟反垄断中输掉.. · 龙芯2F主板曝光 可满足D.. · Google推出唯一硬件——.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 硬盘之父获得诺贝尔物理.. · 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. |