[译]Windows 古僻汉字输入方法

周海汉按:原文作者好南儿,采用上海话(吴语)写的blog,有点看不懂吴语。
但他的知识和资料很到位,图文并茂,是篇很好的文章,应该花了不少心血。
本人也不懂吴语,连蒙带猜翻译一下。方便普通话读者。误会之处,请原作者和读者海涵。

原文地址:
http://shanghaian.72pines.com/how-to-input-difficult-han-characters-in-windows/
译文地址:

http://blog.csdn.net/ablo_zhou/archive/2010/02/16/5309912.aspx

Windows 生僻汉字输入方法

2010/01/21 — 好南儿

0.0 汉字与 Unicode

处理古僻汉字,就用 Unicode 字集里的汉字—— 目前收录的统一汉字已经有了 74394 。如果这里还找不到你要的字,那么就用 IDS 表示,文章不打印的话尽量不要自己造字。

Unicode 里汉字字块包括汉日朝统一表意字( CJK 、汉统, 20940 个)、汉日朝统一表意字扩充甲( Ext-A 、扩甲, 6582 个)、汉日朝统一表意字扩充乙( Ext-B 、扩乙, 42711 个)、汉日朝统一表意字扩充丙( Ext-C 、扩丙, 4149 个)、汉日朝部首增补、汉日朝笔 划、汉日朝兼容表意字、汉日朝兼容表意字增补等。下面我主要讨论汉日朝统一表意字四个字块七万五千个汉字。至于一般性的繁体字、异体字,任何支 持 GBK 个输入法(如微软、紫光、 Google )全好解决,本文不再赘叙。

0.0.1 Unicode 里的四块汉日朝统一表意字

Unicode 1.0.1 初建“汉日朝统一表意字”时,收字 20902 个, Unicode 4.1 增加 22 个字符, Unicode 5.2 又增加 16 个。 20902 个字符 GBK 全收入了, 22 个字符 GB 18030 收了 8 个部首。汉统( Unihan) 里的 38 个字符一般的字库顶多显示 8 个,

cjk-20902-8
Unifonts 5.4
可以显示 22 个。


cjk-20902-22

目前还没哪个字库、输入法完整支持汉统 20940 个字符,下面提到哪个字库、输入法,如没特别说明,“汉统”基本上指 20940 个字符的汉统。至于 GBK GB 18030 里的私用区的字符这里不考虑。

尽管扩甲与扩乙里的字 GB 18030 全收录了,但是市面上支持扩甲的字库要比支持扩乙、扩丙的多(详见 0.1 节)。这个我想主要是因为前者位于 Unicode 多语基本面 ( BMP ),而位于表意增补面( SIP )的后者处理起来比较复杂,外加字库文件一般只容纳六万多个字符——而汉统加扩甲再加扩乙就要超过七万个了。

0.0.2 Windows 对扩充汉字的支持

Windows 系统从 2000 版开始以 UTF-16 为机内码,也就是讲从这个版本开始支持位于表意增补面的扩乙、扩丙汉字。不过支持归支持,要正常显示出来还要另外找字库—— Win2k 发布的时候扩乙、扩丙还没有建立啊。

至于 2000 版之前的 Windows ,只好支持位于多语基本面的汉统与扩甲。

0.1 字库

上面讲过,有操作系统对 Unicode 编码的支持,还要靠相应的字库来显示。下载好字库,除了 exe 文件好自动安装之外,字库文件要你自己拖到 Windows Fonts 文件夹里。

0.1.1 宋体 -18030

微软针对 Windows 2000 提供“ GB18030 Support Package” ,用来支持 GB 18030:2000 字集(汉统+扩甲)。

0.1.2 宋体 - 方正超大字符集

MS Office XP 2003“ 简体中文版”里,收字包括汉统+扩甲+部分扩乙(因为它是单个的字库文件,扩乙只好放一部分)。

0.1.3 Windows Vista 7 里的宋体、细明体、黑体、楷体、仿宋

Windows Vista 7 里的黑体、楷体、仿宋全是支持 GB 18030:2000 的(汉统+扩甲),宋体、细明体除了汉统、扩甲,还支持扩乙。

0.1.4 Unifonts

海峰做的 Unifonts 5.4 (中日韩汉字超大字符集通用字体支持包)支持汉统 + 扩甲 + 扩乙 + 扩丙,包括宋体与细明体两套。

直接下载

Vista 以后的宋体字库汉统与扩甲放到了 SimSun 里,扩乙放到 SimSun-ExtB 里;而 Uniconts 扩甲放在 Sun-ExtA 里,扩乙与扩丙放在 Sun-ExtB 里。

0.1.5 楷体 - 方正超大字符集

文渊阁四库全书电子版 3.0 里,汉统+扩甲+扩乙。我也没用过,估计分两个文件的。

下载页面  

0.1.6 宋体 - 全汉字集

采采卷耳做的字库,汉统 + 扩甲 + 扩乙。

直接下载

0.1.7 BabelStone Han

Andrew WEST 做的字库,对于汉日朝统一表意字没有完全支持,但是汉统最后的 38 个字符它全能显示。
cjk-20902-38

直接下载

0.2 储存文档注意事项

讲如何输入古僻汉字之前,再啰嗦两句 GBK 外汉字如何储存的问题。txt-unicode

0.2.1 txt

储存的时候要选“ Unicode” ,你选“ ANSI” 只能储存 GBK 范围的汉字。

0.2.2 html

储存时候 charset 要设为“ utf-8” ,你写“ charset=GB2312” 只能储存 GBK 范围的汉字。
charset-utf-8

0.2.3 sql

由于 MySQL 本身的失误 ,用它做数据库的论坛(如 Discuz! )、博客(如 WordPress )通常不支持位于 SIP 的扩充汉字。好南儿博客对于扩充汉字 全用 IDS 表示 ,尽管 MySQL 支持扩甲。

0.2.4 余论

现在除了汉语言文字专题论坛、在线汉语辞典、基于 Wiki 的网站,基本上没有网站支持扩充汉字。搜索引擎里, Google 支持扩充汉字,“更懂中文”的百度不支持。
du-in-google-baidu

1.0 找字

现在正式介绍如何输入了。这节是写给 不常打古僻汉字的同好看的

1.1 “ 字符映射表”

来到“附件\系统工具”里。选好“字体”,选中“高级查看”,再选“字符集”、“分组”。双击需要的字符再点“复制”就能拷到你需要的地方。不过只好找找 GBK 范围内的汉字。
charmap

1.2 MS Word

插入\符号,选“字体”、“子集”,双击字符就能插入。支持汉统+扩甲+扩乙+扩丙,子集可选的取决于字体, Unifonts 扩乙与扩丙全放在 Sun-ExtB 里。
insert-characters-in-word

1.3 其他 Office

2009 版的 OpenOffice.org Writer“ 插入\特殊字符”、永中集成 Office“ 插入\符号”、 WPS 文字“插入\符号”用法类似 MS Word ,不过永中与 WPS 不支持 SIP 的扩充汉字。

1.4.1 BabelMap

BabelMap 5.2 汉统(完整的 20902+38 )+扩甲+扩乙+扩丙全支持,在菜单里可以用部首、拼音(普通话、粤语)查汉字。

部首查字要小心,只有简化字是用大陆现在的标准数笔划,繁体字与没有简化的传承字全要按传统字形数。部首一律是康熙部首。如“骚”是马部九划,“騷”与“搔”分别是馬部十划、手部十划(传统字形“叉”左边还有一点)。
babelmap-5-2-ii

下载页面

1.4.2 BabelPad

BabelPad 5.2 是包括 BabelMap 的文字编辑器(唯独不包括临时装载字库的功能),当然支持汉统(完整的 20902+38 )+扩甲+扩乙+扩丙。
unispim-6-51

下载页面

2.0 打字

上面的办法你偶然输入个把字还可以,但不能用于大量输入。这节就不讲找字了,讲如何打字。

2.1 紫光华宇拼音输入法

紫光 6.6 版支持汉统+扩甲+扩乙+扩丙,是汉拼输入法里唯一的。 拼音模式、笔划模式,全能输入。不过拼音模式收字不全,因为汉日朝统一表意字四个字块里有日语、朝鲜语、越南语、壮语、白语的造字,普通话读音是很困难的,也没有必要。而笔划模式不受影响,横竖楷书体系的字都可以用“ B h s p n d z 折”输入。 unispim-6-6-0-38

记得早期的紫光 2.01 也是很早支持 GBK 的输入法之一,当时 Windows 系统输入法只有全拼输入法支持 GBK ,但是全拼的效率大家全有数。后来紫光以5.0版重出江湖的时候,居然不支持“大字符集”模式 ,好南儿也只好放弃了,直到两年 6.0 出现。

下载页面  

2.2 其他拼音输入法

其他拼音输入法也只有吴语输入法(如 上海话输入法 )能输入扩充汉字,不过仅限于扩甲、括乙里的吴语常用字。而基于汉拼的输入法顶多通过自己需要的扩充汉字放在“自定义短语”里这个方式来曲线救国,就像 好南儿推荐紫光 6.5 时代所做的尝试 。这种方式要求输入法支持 Unicode “谷歌”拼音输入法 加加输入法 可以做到。

2.3 海峰五笔

海峰五笔 9.5 支持汉统 + 扩甲 + 扩乙 + 扩丙,可选 86 98 的五笔规则。

直接下载

2.4 其他五笔输入法

菩提五笔 支持汉统 + 扩甲 + 扩乙 + 扩丙; 小鸭五笔 支持汉统 + 扩甲 + 扩乙。

2.5 文渊郑码

支持汉统 + 扩甲 + 扩乙 + 扩丙,扩丙可能有问题。

下载页面  

2.6 山人通用输入法

估计支持汉统 + 扩甲 + 扩乙 + 扩丙,估计汉统是完整的 20902+38 。输入码是山人全息编码。

下载页面

2.7 逍遥笔xiaoyaobi-6-5

逍遥笔 6.5 支持汉统 + 扩甲 + 扩乙,手写输入(用鼠标就可以了)。左下角的数字要选好—— 4 GB 2312 5 GBK 6 是汉统+扩甲, 7 再是汉统 + 扩甲 + 扩乙。

直接下载

2.8 五代仓颉

第五代仓颉输入法 2008 年版支持汉统 + 扩甲 + 扩乙。

下载页面

3.0 网上字典

介绍两个网站,主要是查字派用场。

3.1 Unihan

Unicode 官网,当然支持最新版的 Unicode ,支持汉统(完整的 20902+38 + 扩甲 + 扩乙 + 扩丙。

你好用罗马字查(粤语、北语、日语音读与训读、朝鲜语等),网址我不写——汉字同音字多得吓死人,用罗马字查字容易死机的。

也可以 用部首查 ,注意事项同 1.4.1

3.2 叶典

叶典 上面你好用“两分法”寻古僻字。如要寻“⿱勿好”,你也用不着想部首是“丿”、“勹”、“女”还是“子”,就打“勿好”查。
yedict-com
自称支持汉统+扩甲+扩乙+扩丙+扩丁+扩戊。扩丁、扩戊两个字块 Unicode 还没有定呢,让它去。

4.0 Unicode 里没的字

遇到 Unicode 里没有的字,网友大概一般会需要这样描述:““牙合””、“ { 牙合 }” 、“左牙右合”……

4.1 IDS

我还是用 IDS Ideographic Description Sequence ,表意描述序列)比较好,看上去清爽。

先写个表示结构的表意描述符,如“⿰”,再写这个结构里用到的部件“牙合”,并拢来就是“⿰牙合”。

上面这个字还算简单,碰着复杂点的结构,要表意描述符(⿰⿱⿲⿳⿴⿵⿶⿷⿸⿹⿺⿻)嵌套组合。如“渠”是“⿱⿰氵巨木”——先讲它是上下结构,再 讲它上面是个左右结构的部件,左边是“氵”,右边是“巨”,左右结构描述完成,再讲上下结构下面是“木”。而“渠”加著“亻”的后起本字就好描述成“⿰亻 ⿱⿰氵巨木”。再复杂点,山西有种面的名字(“ biangbiang 面”)就是“⿺辶⿳穴⿲月⿱⿲幺言幺⿲長馬長刂心”。

4.2 造字

文章要打印出来,那没办法。如果在网络上面传来传去、电脑上面看看就可以了,那么还是不要去造字。因为造出来的字你的电脑上面可以看,传给人家,人家看不出。举个例子,比较啰嗦,可以不要看——因为好南儿例子举好也不会讲解造字。

09 7 27 号的《新民周刊》有篇王悦阳的《寻觅上海记忆》,在 “谁是张承裕?”一节 里提到“张 聋⿱彭耳”。“⿱彭耳”是个上“彭”下“耳”的字,其实这个字扩充乙块里有了,但排印的时候是另外造字的,网上登出来个是“张聋■”。虽然讲他们造的字我看不到,但是凭吴语语感猜得出那缺字是“⿱彭耳”。 凤凰网转载 ,把“■”当垃圾全部去掉,那么读者就不晓得缺少的字。 人民网转载 还要过分,将所有“张聋■”改成了“张承裕”、“张”。文中一句“张聋■这个古怪的名字的由来本身就充满着传奇色彩”变成了“张承裕这个古怪的名字……”,也不晓得“张承裕”这个名字怪在啥地方。

5.0 参考

白云深处人家 《計算機漢字處理基本知識  漢字字體下載》

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 在Windows平台上使用Qt进行中文输入,有几种常见的实现方式。 首先,可以使用QLineEdit控件来接收用户的输入。通过设置QLineEdit的输入法属性为Qt::ImeEnabled属性,可以开启中文输入法的支持。用户在该控件中输入时,会自动弹出系统的中文输入法界面,方便用户进行中文输入。 其次,Qt还提供了QTextEdit控件,可以在其中进行富文本的编辑。与QLineEdit类似,通过设置QTextEdit的输入法属性为Qt::ImeEnabled属性,可以支持中文输入法。用户可以在该控件中编辑并输入中文内容。 另外,Qt还提供了一个专门用于处理键盘输入的事件过滤器QEventFilter。可以通过在主窗口中重载事件过滤器函数来处理键盘输入事件,从而实现中文输入的过滤和处理。用户在任意窗口中输入时,可以通过该过滤器来判断是否为中文字符,并进行相应的处理。 除了以上方法外,还可以通过第三方输入法软件来实现中文输入。一些流行的中文输入法软件,如搜狗输入法、百度输入法等,一般都提供了与Qt框架集成的插件。用户在安装好这些输入法软件后,在Qt应用程序中进行中文输入时,会自动调用相应的输入法插件,实现中文输入。 总结来说,通过设置相关控件的输入法属性,使用事件过滤器或集成第三方输入法插件等方式,都可以在Windows平台上实现Qt的中文输入功能。具体要根据实际需求和使用的控件来选择适合的方法。 ### 回答2: 在Windows系统中,Qt提供了对中文输入的支持。Qt是一个跨平台的应用程序开发框架,在Windows上使用Qt进行中文输入是非常方便的。 首先,Qt提供了Qt Widgets模块,其中包含了很多用于用户界面开发的组件。这些组件支持中文字符,并且可以自动适应用户输入法的切换。使用这些组件开发的应用程序可以正常处理中文输入。 其次,在Qt Widgets模块中有一个QLineEdit类,它是一个用于文本输入的组件。QLineEdit支持中文输入,用户可以直接通过输入法进行中文输入。开发者可以通过该类的API获取输入的文本数据,并进行相应的处理。 此外,Qt还提供了Qt Virtual Keyboard模块,它是一个虚拟键盘组件。使用虚拟键盘可以为那些没有物理键盘的设备提供输入方式,其中也包括中文输入。开发者可以将虚拟键盘集成到自己的应用程序中,实现中文输入的功能。 总的来说,Qt在Windows系统中对中文输入进行了很好的支持。开发者可以使用Qt提供的组件和功能,轻松地实现中文输入的需求。无论是通过物理键盘输入还是通过虚拟键盘输入,Qt都可以提供相应的解决方案。 ### 回答3: 在Windows Qt中,实现中文输入有几种方法。 1. 使用Windows系统自带的中文输入法。可以通过切换系统默认输入法来实现中文输入。在Qt应用程序中,可以使用QInputMethod类的相关方法来获取和处理输入法的相关信号,从而实现中文输入的逻辑。 2. 使用第三方中文输入法。Qt应用程序也可以集成第三方的中文输入法,例如搜狗输入法、百度输入法等。通过与第三方输入法的API进行交互,实现中文输入功能。通常情况下,第三方输入法提供了相应的SDK和文档来帮助开发者进行集成。 3. 使用自定义的中文输入法。开发者也可以自己实现一个中文输入法,从而完全自定义输入界面和输入逻辑。通过Qt的输入事件处理机制,可以捕捉到键盘输入、鼠标点击等事件,并对其进行解析和处理,实现中文输入功能。 无论使用哪种方法,都需要在Qt应用程序中负责处理中文输入的逻辑,包括接收输入法的输入信号,显示候选词列表,处理拼音转换等细节。同时也要注意处理输入法和应用程序之间的焦点切换,以确保输入法的正常使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值