快速获取汉字任意输入码的方法与实现

合集下载

获取汉字首字母的函数

获取汉字首字母的函数

获取汉字首字母的函数获取汉字首字母的函数是一种非常常见的需求,尤其是在中文搜索和排序等场景中。

在这篇文章中,我们将介绍几种获取汉字首字母的函数,并对它们的优缺点进行比较。

方法一:使用Unicode编码Unicode编码是一种国际标准,它为世界上所有的字符都分配了一个唯一的编码。

在Unicode编码中,每个汉字都有一个唯一的编码,因此我们可以通过获取汉字的Unicode编码来获取它的首字母。

具体实现方法如下:```pythondef get_first_letter(string):letter = ''for s in string:if '\u4e00' <= s <= '\u9fff':letter += chr(ord('a') + ord(s) - ord('\u4e00'))else:letter += sreturn letter```这个函数的实现方法非常简单,它遍历了字符串中的每个字符,如果是汉字,则将它的Unicode编码转换为对应的小写字母,否则直接将字符添加到结果中。

这种方法的优点是实现简单,而且可以处理任何汉字,缺点是它只能处理汉字,对于其他字符无法处理。

方法二:使用拼音库拼音库是一种将汉字转换为拼音的工具库,它可以将汉字转换为拼音,并且可以获取拼音的首字母。

因此,我们可以使用拼音库来获取汉字的首字母。

具体实现方法如下:```pythonimport pypinyindef get_first_letter(string):letter = ''for s in string:if '\u4e00' <= s <= '\u9fff':letter += zy_pinyin(s)[0][0]else:letter += sreturn letter```这个函数的实现方法比较简单,它使用了拼音库中的lazy_pinyin函数将汉字转换为拼音,并且获取拼音的首字母。

ALT+数字键详解

ALT+数字键详解

用ALT键加小键盘数字键输入文字--汉字编码经常在论坛里见到,按住Alt键,在用小键盘输入某某数字,就出来一个什么什么难写的字。

实在是看得太多了,这里给大家讲讲原理。

首先说说汉字的几种编码。

计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。

其实就是用一个数字和一个汉字进行一一对应。

计算机内常用的编码有国标码,区位码和机内码。

国标码是一个四位十六进制数,它将一个汉字用两个字节表示,每个字节只有7位,与ASCII码相似。

区位码一个四位的十进制数,它将GB 2312—80的全部字符集组成一个94×94的方阵,每一行称为一个“区”,编号为01~94;每一列称为一个“位”,编号为01~94,这样得到GB 2312—80的区位图,用区位图的位置来表示的汉字编码,称为区位码。

机内码:为了避免ASCII码和国标码同时使用时产生二义性问题,大部分汉字系统都采用将国标码每个字节高位置1作为汉字机内码。

这样既解决了汉字机内码与西文机内码之间的二义性,又使汉字机内码与国标码具有极简单的对应关系。

汉字机内码、国标码和区位码三者之间的关系为:区位码(十进制)的两个字节分别转换为十六进制后加20H 得到对应的国标码;机内码是汉字交换码(国标码)两个字节的最高位分别加1,即汉字交换码(国标码)的两个字节分别加80H得到对应的机内码;区位码(十进制)的两个字节分别转换为十六进制后加A0H得到对应的机内码。

再回到用Alt键输入的问题。

实际上,按住Alt键,然后用小键盘敲入一串数字,就是输入了某个字的“机内码”。

比如,“喆”这个字的机内码为86B4(16进制),转换为10进制就是34484,因此大家按住Alt键,然后用小键盘输入34484,就可以出来“喆”字了。

最后,由于汉字和机内码是一一对应的,所以只要知道了机内码,任意一个汉字都可以用这种方式输入的。

除此之外,还有大量的符号,比如论坛里已经发了N次的心形符号,也是通过这个原理输入的。

五笔汉字输入方法

五笔汉字输入方法

五笔汉字输入方法五笔输入法是一种汉字输入方法,其原理是将汉字按照字根的部首以及笔画的顺序进行编码,通过输入这些编码来实现汉字的输入。

下面我将详细介绍五笔汉字输入方法。

五笔输入法是由中国台湾地区的铃木贤治先生于1980年代发明的。

其原理是根据汉字笔画的形状和构造,将所有汉字按照字根的部首以及笔画的顺序进行编码。

每一个汉字都有一个唯一的编码,通过输入这个编码,计算机能够识别出对应的汉字。

五笔码的基本单位是字根,字根是汉字的最小构成部分,它是组成汉字的基本形状。

每个字根都有一个唯一的编码,使用字根编码可以输入所有的字根。

字根的编码一般由两个部分组成:一个是字根的声母,另一个是字根的部首。

五笔码输入的第一步是选择字根的声母。

声母是字根所属的音节,通过选择声母可以缩小汉字的范围。

声母的编码通常是由字母和数字组成,每个声母都有一个唯一的编码。

选择声母后,计算机会显示出符合条件的字根列表供用户选择。

选择字根的部首是五笔码输入的第二步。

字根的部首是字根的构成部分,通过选择部首可以进一步缩小汉字的范围。

部首的编码一般由一个或多个符号组成,每个部首都有一个唯一的编码。

选择部首后,计算机会显示出符合条件的字根列表供用户选择。

选择字根之后,需要通过输入字根的笔画顺序来确定具体的汉字。

每个字根都有一个笔画顺序,根据这个笔画顺序输入可以得到对应的汉字。

五笔码中,每个字根的笔画都有一个唯一的数字编码,根据这个编码来输入笔画顺序。

输入笔画顺序时,可以使用数字键盘上的数字键或者字母键盘上的字母键。

除了字根以外,五笔输入法还提供了一些特殊的编码方式。

比如,一些常用的词语可以用特殊的编码来输入,这样可以提高输入速度。

此外,五笔输入法还提供了一些短语、句子的编码方式,用户可以通过输入这些编码来输入整个词语、短语或句子。

五笔输入法具有输入速度快、输入准确度高的特点。

由于每个汉字都有一个唯一的编码,不同的汉字之间没有重码的情况,因此可以避免一些拼音输入法中常见的重码问题。

自然码汉字输入法速成教程

自然码汉字输入法速成教程
如果你的系统中已经安装了自然码的gbk支持词库可通过单击输入行上的自然后在弹出菜单中依次选择扩充词库扩充字词库选择自然gbgbk切形打开切形词自然码设置指南自然码智能汉字输入系统为我们提供了强大的功能但这些功能都集成在输入行上单击输入行上的手形图标和自然提示可分别调出两大类菜单
自然码智能汉字输入系统
贼应求您吃外行 更靠松鼠来追软棉粉鞋 哇呀 次要 急案 笔偶 特约 得王得洋 批温批晕
这两组文字中蕴含了自然双拼的全部精华,但不需要象背诵“口诀”一样去死 记硬背,只需读顺口就行了。在朗读时 ,请大家注意 一下第一组中各字的拼音以及 第二组中首字的声母。当朗读顺口后,请完成下面的练习。之后大家对这两组不成 文的文字所蕴含的意义自然会心领神会。
特殊形码联想记忆提示:
日、曰、月、目 →象形:与字母 O 相似;
手、扌
→象形:与大写字母 F 相似;
一、│、乛、亅、ㄥ →横、竖、折单笔画再 A 键上;
丶、冫、氵、水 →读作“点”,声母为 D 键。
第5页
自然码汉字输入法学习材料
云南国土资源职业学院
字母 A B C D E F G H I J K L M N O P Q R S T U V W X
四、编码示范
当今,人类正在步入一个以智力资源的占有和配置,知识生产、分配和使用为 dhjn,rflzvgzlburuyg’yi_viliziyrd_vjybh_pzvi,viuiugij、ffpzh_uy’wz_ 最重要因素的知识经济时代,也就是小平同志提出的“科学技术是第一生产力”的时代。 zv_vsykys ’d_viuijj’uidl,yju’x_py_tsvitiiud_”kxjuu_dy ’uil’”d_uidl. 科教是经济发展的基础、知识是人类创新的源泉,基础研究的科学发现,应用研究的 kejcu_jj’fv’d_jiiu,viuiu_rflzidxnd_yrqr,jiiuyjjqd_kx’fx’,yyysyjjqd_ 原理探索和开发研究的技术发明,三者之间的联系愈来愈紧密,转换周期日趋缩短。 yrlitjsoh_kf’yjjqd_jiiufamy,s_v;vj’d_lx’yly’jnmi,vrhrvbqiriqvsodr. 世界各国的竞争已成为以经济为基础,以科技特别是以高科技为先导的综合国力的竞争。 uijxgegod_jyvgyia_iw’yi_jj’wz_jiiu,yi_kejitb’u_yi_gkj’wz_xmdkd_zshegolid_jyvg.

使用正则表达式提取汉字

使用正则表达式提取汉字

使用正则表达式提取汉字在中文文本处理中,经常需要提取出其中的汉字。

使用正则表达式可以轻松实现这个功能。

首先,需要了解汉字的 Unicode 编码范围。

汉字的 Unicode 编码范围为 u4e00 到 u9fff。

因此,可以使用正则表达式[u4e00-u9fff]+ 来匹配一个或多个汉字。

下面是一个 Python 的示例代码,演示了如何使用正则表达式提取汉字。

```pythonimport retext = '这是一段中文文本,里面包含了一些汉字。

'pattern = '[u4e00-u9fff]+'result = re.findall(pattern, text)print(result)```输出结果为:```['这是一段中文文本', '里面包含了一些汉字']```可以看到,使用正则表达式成功提取出了文本中的汉字。

除了使用 Unicode 范围来匹配汉字,还可以使用 Unicode 字符属性。

例如,可以使用 p{Han} 来匹配汉字。

以下是示例代码:```pythonimport retext = '这是一段中文文本,里面包含了一些汉字。

'pattern = 'p{Han}+'result = re.findall(pattern, text, flags=re.UNICODE)print(result)```输出结果与上面的示例相同。

使用正则表达式提取汉字可以方便地处理中文文本。

在实际应用中,还可以结合分词等技术进一步处理。

汉字数符编码输入方法

汉字数符编码输入方法

汉字数符编码输入方法《汉字数符编码输入方法:改善文本输入效率的艺术》汉字数字编码输入方法汉字数字编码输入法是一种可以让用户快速输入和查找特定汉字的方法。

它能够通过数字、字母或其他图形符号快速输入汉字,并通过人机交互,帮助用户完成汉字输入。

一、历史沿革汉字数字编码输入技术可以追溯到1972年英国Loxity公司推出的FangXiang(方象)汉字输入法。

许多欧美专利使用了形似字法,将汉字的笔画转化为一系列的字母数字符号,进而输入汉字。

形似字输入法因其可以准确定位字形而深受欢迎,但仍有许多不足之处,如无法实现常用词缩写等。

此后,许多改进版本的汉字数字编码输入方法出现,如号码查字、微声输入、补全输入等,并受到广泛应用。

二、常用汉字数字编码输入方法1. 拼音输入法拼音输入法是常用的汉字数字编码输入方法。

它是通过输入汉字的拼音音节(或输入汉语拼音的缩写)来完成汉字输入的一种方法,是基于字母编码实现汉字输入的技术,可以非常简便的输入汉字。

2. 手写输入法手写输入法是使用特定键盘某种触摸笔进行演示,在手机或其他指定设备上将汉字输入系统通过触摸形式进行输入。

3. 补全输入法补全输入法是利用软件算法,在用户输入部分汉字时,该方法能够根据用户输入的笔画数和字形建议补全汉字输入,省去用户辛苦的输入过程。

4. 中文语音输入法中文语音输入法是通过用户发出声音来完成汉字输入的方法。

它可以准确的捕捉用户的语音,再根据汉字的读音进行汉字输入。

三、汉字数字编码输入技术的优势汉字数字编码输入技术的优势在于准确性。

由于不同语言不同习惯会对汉字拼音读音习惯产生差异,不同歧义也会影响汉字的输入,而汉字数字编码技术可以通过唯一的笔画配制将汉字准确的输入,满足用户不同对汉字编码需求。

另外,随着技术的不断更新,汉字数字编码输入技术也逐渐的进步,加速汉字数字输入的速度,满足用户的字输入需求。

四、汉字数字编码输入技术的发展趋势随着技术的不断发展,汉字数字编码输入技术也在不断提高。

快速获取汉字任意输入码的方法与实现

快速获取汉字任意输入码的方法与实现
C h ne eC h r c e sa t a ia i i s a a t r nd I sRe lz ton
LlOu n h n a z o g.ZHANG u ig Fl n
f l g f ce c s S a d n g i I 阳I nv ri . a’n 7 0 8) l eo S i e . h n o gA rc t ie s y T i 2 1 1 Co e n un U l a
维普资讯
第2 卷 8
28

第3 期
^ 自3





2 0 年3 0 2 月
M a c 00 r h2 2
Co p t r E g n e i g m u e n ie rn
开发研究 与设计 技术 ・ 文章 编号:1 0 。 2( 0) — 22 3 0 — 48 02 3 6—0 0 2 0
o hsm e h mim . e h q fo tit gCh n s h r ce n tc d sl ft i ca s a tc niueo ban i eec a a tripu o e Ⅱap l at n p o r msi sa il d 1a hi p o d sallr h pi i r g a setbl i nd t s r vie lo e c o se
0 Ⅱ 拍 t d
b 州 姗
te竹e I f a 雌 o ua a ki pl t e o a  ̄ nt He . h 盘 nn v 0 p th n l mp r o a s t e
I y wod 1 hn s o | t r:I p t ifo Ke rs C iee h r t a e n u cI d:I p t o e I OS n I n u d :[ c CD

五笔输入法(86版)教程

五笔输入法(86版)教程

五笔输入法(版)教程一、五笔输入法简介五笔输入法是一种基于汉字结构进行编码的输入方法,由王永民教授于1983年发明。

版五笔输入法因其发明时间为19年而得名,是目前最流行的五笔输入法版本之一。

它通过将汉字拆分成笔画和字根,然后将这些字根对应到键盘上的特定字母,实现了快速、高效的汉字输入。

二、五笔输入法的特点1. 重码率低:五笔输入法的编码规则独特,每个汉字都有唯一的编码,因此在输入过程中重码率极低,提高了输入速度。

2. 输入速度快:熟练掌握五笔输入法后,输入速度可达到每分钟上百字,非常适合专业打字员和文字工作者。

3. 适合盲打:五笔输入法的键位布局合理,有助于实现盲打,即在不看键盘的情况下快速输入。

三、五笔输入法的基本原理1. 汉字结构分析:五笔输入法将汉字分为笔画、字根和整字三个层次。

笔画是构成汉字的最基本元素,字根是由笔画组成的具有独立意义的汉字部分,整字则是由一个或多个字根组成的完整汉字。

2. 字根分类:五笔输入法将所有汉字字根分为五大类,分别对应键盘上的五个区域,每个区域包含五个字母键。

3. 编码规则:五笔输入法的编码规则是将汉字拆分成字根,然后将这些字根对应的字母组合起来,形成该汉字的五笔编码。

四、五笔输入法的键盘布局1. 键盘分区:五笔输入法将键盘分为五个区域,分别是横区、竖区、撇区、捺区和折区。

2. 字母键对应字根:每个区域的字母键分别对应不同的字根。

例如,横区的第一个字母键“G”对应字根“一”,第二个字母键“F”对应字根“丨”,以此类推。

3. 键位助记:为了方便记忆,每个字母键上的字根都有相应的助记词。

例如,横区的“G”键上的字根“一”可以助记为“工人”。

五、五笔输入法的学习方法1. 记忆字根:学习五笔输入法的第一步是记忆字根及其对应的键盘字母。

建议通过字根表进行学习,将每个字根与键盘上的字母键对应起来。

2. 练习拆字:掌握字根后,要学会将汉字拆分成字根。

可以通过练习拆字软件或查阅五笔拆字字典来提高拆字能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A Fast Way for Obtaining Arbitrary Input Codes of
Chinese Characters and Its Realization
LI Quanzhong , ZHANG Fuling ( College of Sciences , Shandong Agricultural University , Tai'an271018 ) 【 Abstract】 Take UCDOS as an exemple , the paper analyzes the diverse searching mechanism of Chinese character input codes . On the basis of this mechamism , a technique of obtaining Chinese character input codes in application programs is established , and this provides a more convenient and possible way for the ereation of various operatable input code comparison tables . 【 Key words】 Chinese character ; Input method ; Input code ; UCDOS
CS:4683 8AE3 MOV AH,BL
CS:4685 86E0 XCHG AH,AL
;高低8位交换,AX即为汉字的机内码
CS:4687 E85609 CALL 4FE0 ;清除提示行准备工作
CS:468A E88208 CALL 4Fห้องสมุดไป่ตู้F ;清除提示行
CS:468D 50
PUSH AX ;保存汉字机内码
可形成一个被应用程序调用的汇编子程序。其入、出口参数
同上。
CS:46D3 0E
PUSH CS
CS:46D4 1F
POP DS
CS:46D5 FF5F0C CALL FAR [BX+0C]
CS:46D8 CB
RETF
当该子程序被调用完后,应立即将CS :46D3 —46D8 处
的指令恢复成原来的指令代码,即恢复成如下的代码。
CS:46E9 AC LODSB ;经必要的处理后显示在提示行上的 CS:46EA 0AC0 OR AL,AL ;过程
CS:46EC 7409 JZ 46F7
CS:46EE 3C20 CMP AL,20
CS:46F0 7405 JZ 46F7
CS:46F2 E87708 CALL 4F6C
CS:46F5 E2F2 LOOP 46E9
1 获取汉字输入码的途径
我们知道,任何一种汉字平台都配备了若干种汉字输入 法,以满足不同用户的要求,如UCDOS配备了近10种,而 Win95/98则配备了10多种。
能否从现有汉字平台配备的输入法中获取所需要的汉字 输入码?这应当作为考虑解决这个问题的出发点。
然而,事实上如果要从UCDOS 或Win95/98所 提 供 的 汉 字编码文件中寻找所需,无疑是不可取的,因为这些编码文 件无论是文本还是经过编译的都含有大量词组,实际操作中 面临的工作量之大、困难之多是不言而喻的。
CS:46F7 B020 MOV AL,20
CS:46F9 E87008 CALL 4F6C
CS:46FC 58
POP AX
CS:46FD 5B
POP BX
CS:46FE EBA5 JMP 46A5 ;反查下一输入法对应的输入码
不难发现,CS:46D6 CALL FAR [BX+0C]这个远程调
用完成的正是反查输入码的功能(限于篇幅,代码略)。分析
;有反查输入码程序入口 ?
CS:46BF 743B JZ 46FC
;无,检测下一切换键
CS:46C1 C537 LDS SI,[BX] ;取输入法名称地址
CS:46C3 B90800 MOV CX,0008 ;以下显示输入法名称
CS:46C6 AC
LODSB
CS:46C7 E8A208 CALL 4F6C
如何得到可操作的汉字的输入码?仅以FoxBASE应用
程序为例进行示范。其基本思想是,由FoxBASE的内存变
量提供汉字,通过调用后面设计的汇编子程序查得汉字的输
入码并将其返回到原内存变量中,从而得到了可操作的汉字
输入码。
现立足于获得汉字的全拼输入码(Alt+F2对应的输入法 )
的想法,并根据FoxBASE调用汇编语言子程序的约定,可
在有关软件开发中,往往需要一种按一定结构存放的易 于操作的汉字输入码表来配合,以实现特定的功能。如专业 词库以拼音为序的排序,药品名称以拼音首字符为检索码的 检索方法的实现,以及汉字的拼音读音标注等。这一切,对 于那些手头没有合适的汉字编码对照表的普通编程人员来 讲,很容易陷入困境。显然,如何获得汉字的某种输入码 (编码)是组织具有可操作性码表的关键,也是解决上述问题 的基础。
第 28卷 第 3期 Vol.28 № 3
计 算 机 工 程 Computer Engineering
2002年 3月 March 2002
· 开 发 研 究 与 设 计 技 术 · 文章编号: 1000— 3428(2002)03 — 0262— 03
文献标识码:A
中图分类号: TP391.12
遗憾的是,UCDOS并没有把这个功能设计成独立的功 能调用向用户开放,而是设计成系统内部调用的代码形式。
3 反查输入码机制简要分析
通过对 UCDOS6. 0的 KNL.COM与LIMD. COM程 序 本身及加载过程的分析发现, KNL通过接管、重置 8H/9H/ 10H/16H等一系列中断程序来形成UCDOS的处理核心,并为 LIMD预留了足够大的注册区(首址为CS :15F6)。对于每种 输入法,注册区为其依序对应一个注册项,即汉字输入法对 应的功能键的序号与它的注册项序号相同。每个注册项长 16 个字节:前8字节存放输入法的名称,最后4字节存放反查输 入码程序入口地址。
CS:468E E8DB08 CALL 4F6C ;在提示行显示汉字的左半部分
CS:4691 58
POP AX
CS:4692 50
PUSH AX
CS:4693 8AC4 CS:4695 E8D408
MOV AL,AH
CALL 4F6C ;在提示行显示汉字的右半部分
CS:4698 B02D MOV AL,2D CS:469A E8CF08 CALL 4F6C ;显示'-'
表明,这个远程调用的入口参数是,AX为汉字的机内码,
DS:[BX+0C]为反查输入码程序入口;出口参数是,AX、
BX、DX为返回的输入码,每8位代表一个输入码,即最大
码长为6。
4 获取汉字输入码的方法
基于以上分析,又考虑到KNL中的环境因素,只要在内
存中动态地对CS:46D3—46D8处的指令作如下的改造,就
快速获取汉字任意输入码的方法与实现
李全忠, 张福岭 (山东农业大学理学院,泰安 271000 ) 摘 要 :以UCDOS为例简要分析了该平台下的汉字输入码反查机制,给出了以此机制为基础实现在应用程序中获取汉字输入码的方法,从 而为各种可操作的输入码对照表的生成提供了方便与可能。 关 键 词 :汉字; 输入法;输入码; UCDOS
PUSH AX
CS:46B3 E87BF7 CALL 3E31 ;计算BL对应输入法名称的入口地址DS:[BX]
CS:46B6 833F00 CS:46B9 7441
CMP WORD PTR [BX],+00
;BL切换键加载了输入法?
JZ 46FC
;无,检测下一切换键
CS:46BB 837F0CFF CMP WORD PTR [BX+0C],-01
而LIMD在加载输入法时,除将被加载输入法的一些重 要数据载入内存外,还将输入法名称和反查输入码的入口地 址填入KNL为它预留的注册项中,当然若该输入法不具有输 入码反查功能的话,则注册项中用于存放反查输入码程序入 口地址的单元将保持4字节0FFH不变。
还必须说明的是,LIMD每加载一次就又重新接管、重 置16H中断程序,但它不重置08H中断程序。也就是说,当 驻留后无论后续再加载或驻留UCDOS的什么功能 模块,8H中断它都不再被接管和重置,因此,输入法的注 册项可通过新的8H中断的段地址来访问,即输入法注册项 的段地址为重置后的8H中断的段地址。
CS:46DD 8BF7 MOV SI,DI
CS:46DF AB
STOSW
CS:46E0 8BC3 MOV AX,BX
CS:46E2 AB
STOSW
CS:46E3 8BC2 MOV AX,DX
CS:46E5 AB
STOSW
CS:46E6 B90600 MOV CX,0006 ;以下是从数据区中逐一取出输入码
UCDOS的汉字输入法是可以随时加载和卸载的,其加 载是通过被称之为万能加载程序LIMD完成的。利用它可以 加载诸如全拼、简拼、五笔等多种输入法。
UCDOS的另一个特点是,可以随时通过按Ctrl+F2键来 反查屏幕光标指示的单个汉字的、由LIMD加载的、所有输 入法的输入码,并显示在提示行上。
—262—
CS:469D B03E MOV AL,3E CS:469F E8CA08 CALL 4F6C ;显示'>' CS:46A2 58 POP AX ;弹出汉字机内码,准备反查输入码
CS:46A3 B300
MOV BL,00 ;BL为由LIMD加载输入法时指定的
相关文档
最新文档