区位码/国标码输入法技术初探

时间:2022-09-30 01:02:45

区位码/国标码输入法技术初探

摘要:计算机技术领域中,使用键盘输入汉字的方法实质是区位码/国标码输入法。本文介绍了区位码/国标码输入法的现实意义,IME的组成结构以及区位码/国标码输入法的发展动态。主要说明区位码/国标码输入法在中文键盘输入法的重要地位,并简单分析了中文键盘输入法编辑器的组成结构等技术。

关键词:输入法;编码;区位码/国标码输入法;IME

中图分类号:TP301.6文献标识码:A文章编号:1007-9599 (2012) 02-0000-02

Area Code/GB Code Input Methods Technology Study

Ma Xiaoxia1,Xia Shumei2

(1.Inner Mongolia Baotou Fire Department,Baotou 014010,China;

2.Inner Mongolia Radio and TV University Medical College of Technology,Huhhot010010,China)

Abstract:The field of computer technology,use the keyboard to input Chinese characters in real terms is the area code/GB code input method.This article describes the practical significance of the area code/GB code input method,the IME composition and area code/GB code input method developments.The main area code/GB code input method in Chinese keyboard input method,and a simple analysis of the composition of the Chinese Keyboard Input Method Editor structure.

Keywords:Input method;Coding;Area code/country standard code input method;IME

汉字输入法是汉字信息输入计算机中最主要的手段同时对其研究也是中文信息处理之中的一个重要课题。汉字键盘的输入属于中文应用软件进行人机交互的重要组成部分。

一、现实意义

为了能够处理声音和文字等信息,计算机终究不是人,是按照一种程序控制而自动操作,执行命令的,这就需要其将这些信息转换成数字信息来处理,而最简单的办法就是多所有的信息用数字分别进行统一的命名,即对这些信息进行数字编码。而ASCII编码就解决了数字化的问题。

为了让我国内每一个汉子都有个统一的编码,1980年我国便过颁布了国家标准:GB2312-80也就是《信息交换用汉字编码字符集》,可简称为国标码,或GB码。

(一)区位码/国标码的重要性

国标码字符集是国内目前所有的汉字系统的具有大纲领功能的统一标准。区位码是十进制数,而国标码是十六进制的,二者都是四位数,每个区位码或国标码分别有一个唯一的符号或者汉字与其相对应,在这里其与同集合A(区位码或国标码)到集合B(符号或汉字)的映射类似。现实生活以及学习中我们并不常用十六进制数,甚至可说用得极少。我们最经常用到的是区位码,所谓区位码,即为区码与位码合称,区位码的前两位,我们称之为区码,而我们称后两位为位码。而区位码与国标码二者却也是关联的,其转换关系为:字符的区位码=字符的国标码-2020H。

区位码和国标码的编码的以上性质,决定了二者分别具有唯一性。即其它输入法不易找到一些汉字的时候,利用其编码输入法就便可找到。

而国标码或区位码的输入法的程序编写在所有编写中文键盘的输入法程序方面,是最简单的,也是最基础的。犹如只有学会乘法口诀才会所有计算一样,只有在会编写国标码或区位码/的输入法之后,对其它中文输入法程序的编写,才能够得心应手。

(二)内码和外码

时下有很多汉字输入法,就拿我们常用的中文windows系统来说。除了我们说的最基本的区位码与国标码,还有搜狗拼音、五笔、智能ABC、全拼、双拼和自然码等多种输入法。为让汉字输入法方便易掌握,而编制的汉字编码如上述列举的几种输入法,我们统称为汉字输入码。而汉字输入码属于外码。而国标码/区位码不利于输入汉字,它们是内码。

内码是在整个汉字系统之中使用的,是一种沟通交换码,使用内码能够使效率得以大大提高同时由于是内码是二进制的,所以数字比较简单和统一,便具有通用的特性。比如英文ASCII字符采用一个字节的内码表示,中文字符如国标字符集中GB2312、GB12345、GB13000皆用双字节内码,GB18030(27,533汉字)双字节内码汉字为20,902个,其余6,631个汉字用四字节内码。

(三)中文输入法的实质

无论什么内码都是很不方便输入汉字的。输入码要能够存储和处理,必须在计算机中转换成内码。国标码与区位码对用户来讲有输入码,而对机器来说,也具有其用来表示的二进制的内码。区位码/国标码的输入法可以说是中文键盘的输入法最基础的输入法,研究中文键盘输入法的实质就是研究区位码/国标码的输入法。

二、国标码/区位码

(一)国标码/区位码简概

国标码字符集是国内目前所有的汉字系统的具有大纲领功能的统一标准。我们最经常用到的是区位码,所谓区位码,即为区码与位码合称,区位码的前两位,我们称之为区码,而我们称后两位为位码。而区位码与国标码二者却也是关联的,其转换关系为:字符的国标码=字符的区位码+2020H。

(二)编码上的优势

区位码和国标码输入法的源代码在编码方面,都是支持UNICODE统一码和代码页的编码函数的。

代码页是一个内部表,操作系统用它将符号(字母、数字和标点符号)映射为字符编号,不同的代码页支持不同国家(地区)。

Unicode是一种主要地显示和交换字符编码地标准。它覆盖了美国,欧洲,中东,非洲,印度,亚洲和太平洋地区地语言。Unicode标准是一种统一的编码格式。统一的字符编码格式可以使用在任意的字符编码中。所以,分析和改进国标码/区位码输入法的源代码具有很高的实际应用价值,区位码/国标码输入法的源代码的应用范围、通用性和重要性是不言而喻的。对于中文输入法的未来发展也是非常重要的。

(三)国标码/区位码的源代码简介

国标码/区位码输入法的源代码共1,1700行,是一种能够独立运行的系统工程。而要分析其代码,工作量非常之大。目前,国内外对国标码/区位码输入法的源代码的分析只是较少部分的源代码分析,还没有完整的分析过整个国标码/区位码输入法的源代码。

IME国标码/区位码源代码的程序块有16个,candui.c程序块有15个函数,compose.c程序块有16个函数,chcand.c程序块有4个函数,compui.c程序块有16个函数,ddis.c程序块有24个函数,init.c程序块有7个函数,mmonitor.c程序块有3个函数,notify.c程序块有8个函数,regword.c程序块有4个函数,resource.h程序块函数statusui.c程序块有11个函数,toascii.c程序块有11个函数,ui.c程序块有21个函数。uisubs.c程序块有6个函数。

1.区位码/国标码输入法原理。

Windows系统下的汉字输入法第一步首先要获取用户所输入的信息,其输入法为了获取这些信息会自动用不同方法,将输入的ascii字符串转换成与其相对应的汉字或者汉字串,当然其转换过程是按照一定的编码规则(转换引擎)来转换的,若有多种结果,便将其列出让用户选择,便得到最后用户所选的字符串。中文Windows操作系统下的输入法,最后会将用户所要的字符串对应地转换成汉字字符消息,发送到界面窗口,从而最终完成输入要求。

区位码/国标码的输入法实现的基本原理知识包含IMM输入法的管理器和编辑器。其整个程序都是运用VC++语言在SDDK的平台上来得以实现的。

IME(Input Method Editors,简称IME,即我们常说的输入法,也叫前端处理器,它允许用户通过使用标准键盘而输入各种不相同的字符,达到输入非拼音文字的效果。时下通过IME在WINDOWS环境下可以输入韩文、中文(繁或简)以及日文等多种象形文字等。

输入法程序为用户与WINDOWS操作系统提供两个接口,即IME转换接口和IME用户接口,即IME Conversion Interface和IME User Interface。而IME转换接口以函数集的形式出现,这些函数大多是由输入法管理器IMM来调用的;IME用户接口则以窗口形式出现,其是由IME窗口(IME Window)、UI窗口(UI Windows)及UI窗口元件(the components of the UI Window)的三部分组合而成的。IME用户接口接收到键盘消息(Keyboard Message)后,立即将键盘消息传送到输入法程序,然后由输入法程序对这些消息进行处理。如图所示。

图 IME的组成结构

在WINDOWS的USER.EXE文件中有一个类“ime”,IME窗口就是基于这个类的一个不可见窗口,IME用户接口接收到键盘消息(Keyboard Message)后,就将键盘消息传送到输入法程序,然后由输入法程序中的IME窗口,处理输入法中的所有用户接口UI以及应用程序和IMM发送到输入法的所有消息。

一个应用程序可以创建一个IME窗口,这个IME窗口用来管理应用程序所有的可选输入法,通过处理消息WM_IME_SELECT可以在多个输入法间切换。所以,IME窗口是为所有的输入法共享的一个类。

IME转换接口(IME Conversion Interface)是由用户实现的一组接口函数,这些函数将由输入法管理器在适当的时机调用,并在其中完成对输入的转换功能。

IME用户接口UI窗口(IME User Interface)是一个具体的输入法(如区位输入法)总控窗口,它是IME窗口的一个子窗口。IME用户接口UI是由用户实现的一组可见或不可见的窗口组成,这些窗口如图所示,这些窗口将接收和处理由IMM发来的输入消息,提供与用户交互的界面。IME用户接口主要的作用是接收各种消息以及通过各种窗口的显示,让用户随时了解输入法的当前状态,为IME提供用户接口界面。其组成部分包括:缺省的IME窗口(Default IME window)、用户界面窗口(UI Window)以及用户界面窗口组件。

此外,用户界面还包括一些系统图标以及菜单和软键盘等等。

用户接口UI的作用是接收消息,这些消息主要是由应用程序或IMM发送而来的,UI接收这些消息之后便进行相应的处理。另外,它还创建状态、输入以及候选窗口,或status window composition window以及candidate window并同时将这些窗口的基本数据保存下来。

三、区位码/国标码IME的数据结构特点

(1)IME中的数据结构:IME使用的数据结构,不仅包括IMM的,还有UI窗口的,以及IME的数据结构,IME所使用的数据结构的数量是相当庞杂的。

(2)IME之中的函数:支持代码页和UNICODE统一码的编码函数的数量比较庞大,部分函数的查找非常困难。可利用国标码/区位码的输入法的源代码的上下文来推断出这些函数。

(3)IME的消息类型和标志值:IME之中的消息类型有:IME发给应用程序之消息,IME与IMM之间传递之消息以及IME各个窗口之间传递的消息。IME中的标志输入串模式标志值,各个窗口状态变化的标志值等等,内容繁琐。

四、发展的动态

由于时代进步和社会的发展,中文输入法在国际应用的领域上地位也日益显得越来越重要。中文输入法还可应用在其它方面,比如最常用的电子产品手机和嵌入式系统中等等,其实际应用范围和通用性日益广泛,具有很广阔的发展前景,分析探究中文键盘的输入法实际运用价值显得越来越高,这对于中文输入法的未来发展也是非常重要的。

参考文献:

[1]焦翠珍,戴文华.输入法程序设计技术初探[J].咸宁师专学报,2001,21(3):73-77

[2]吕继兴,蒋文科,臧悦利.基于WINDOWS IME汉字输入法的实现[J].河北农业大学学报,2003,26(增):290-292

[3]胡宇晓,马少平,夏莹.基于IMM-IME输入法接口的实现方法[J].计算机工程与应用,2002,1:117-124

[4]朱巧明,李培峰,杨季文.基于WINDOWS 9x/2000/NT平台汉字输入法的设计[J].小型微型计算机系统,2000,21(11):1218-1220

[5]李培峰,朱巧明.析WINDOWS 95/98/NT平台多文种IME的设计技术[J].计算机工程与科学,2000,22(4):67-70

[6]余建军,黄云龙.IME受控的应用程序设计[J].微型机与应用,2003,7:10-12

上一篇:机房管理浅见 下一篇:智能变送器的设计方案