简繁转换

原文出处: http://linux-wiki.cn/wiki/zh-hans/简繁转换

汉字简繁转换的意义不言而喻,本文讨论在Linux中实现简繁转换的几种方法之优劣。

OpenCC

OpenCC 是跨平台、多语言的开放中文转换库,除了基本的简繁转换功能外,用户还可以选择对不同用词习惯和异体字的处理方式。

OpenCC 还提供方便的网页转换界面。

OpenOffice.Org的转换功能
OpenOffice.Org提供简繁功能,使用很方便(在工具->语言->中文简繁转换)。

Google翻译功能

Google翻译也可以做简繁转换,效果分析见后面。

使用cconv转换

cconv建立在iconv之上,增加了词语转换能力,效果分析见后面。

Ubuntu用户可以用命令sudo apt-get install cconv安装。

使用cconv进行简繁转换的方法为:

    cconv -f UTF8-CN -t UTF8-HK jian.txt -o fan.txt

使用iconv转换

iconv是用来转换编码的小工具。现在的iconv在执行编码从gb2312到big5的转化时,实现了简繁转换。

使用iconv进行简繁转换的方法为:

iconv -f gb2312 -t big5 gb_input.txt > big5_output.txt

如果原来的文件是UTF-8编码的,则需要使用命令:

iconv -f utf8 -t gb2312 jian.txt | iconv -f gb2312 -t big5 | iconv -f big5 -t utf8 > fan.txt

注意一定要先转化成gb2312,再由gb2312转成big5。

繁简转换则类似:

iconv -f utf8 -t big5 fan.txt | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 > jian.txt

如果有zh-autoconvert,则可以用它代替中间的iconv,如

iconv -f utf8 -t big5 fan.txt | autogb | iconv -f gbk -t utf8 > jian.txt

iconv -f utf8 -t gbk jian.txt | autob5 | iconv -f big5 -t utf8 > fan.txt

不同方法比较
Note.gif注意:
由于此处涉及简繁对比,请确保在左侧语言处选择“不转换”。
测试样例
为了方便比较,选取下面一段话做测试:

中华人民共和国是工人阶级领导的、以工农联盟为基础的人民民主专政的社会主义国家。
干活 干杯  西太后   后天

正确的转换结果是:

中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
幹活 乾杯  西太后   後天

测试样例中第一句话很普通,用来检测能否完成转换的基本功能;第二行“干活”与“干杯”两个词的“干”对应的繁体字不一样,这可以检测程序是否进行了语义分析;“西太后”的“后”简繁相同,同样用于检测简繁转换的准确性。

另外,第二句话中有空格若干,用来判断转换程序是否能保留原格式。

测试结果
OpenCC
中華人民共和國是工人階級領導的、以工農聯盟爲基礎的人民民主專政的社會主義國家。
幹活 乾杯 西太后 後天
OpenOffice.Org
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
干活 干杯 西太后 后天
Google翻译
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
幹活乾杯西太后後天
iconv
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
幹活 幹杯 西太後 後天
cconv
中華人民共和國是工人階級領導的、以工農聯盟為基礎的人民民主專政的社會主義國家。
幹活 乾杯 西太后 後天
不难发现,对于多解的字,OpenOffice.Org未转换,iconv按单一规则转换,而cconv、OpenCC和Google翻译则能正确转换。

但是Google翻译未能保持原格式,而OpenOffice.Org、iconv和cconv则很好地保留了原格式。

另外,iconv不能处理混合编码的文件。

使用cconv转换20M含部分乱码的文本文件耗时仅数秒,且效果非常理想,不会像iconv一样遇到“ә”等非常规字符或乱码字符时报错停止转换。(推荐使用)

模仿语言包式的简繁转换功能插件,轻松实现繁体和简体互换,很方便,只有一个JS文件。Std_StranJF.js文件只支持GB2312码,big52gb.js支持utf-8。   一、将繁简互换JS文件上传至空间:   如果您调用的是,则将繁简互换JS文件(Std_StranJF.Js)上传至网站的js目录中。当然您也可以上传至网站的其他何地方,如根目录下。如果上传在网站根目录下,则要将调用代码改成:   二、页面调用的方法:   在您的网站中请按以下方法添加以下的代码:   1. 在页面中加上以下链接:   繁体中文   这个是每个页面中显示进行简繁转换的链接,您可以放在页面顶部,如顶部的导航处。   如果您用的是默认的动易模板,则进入网站后台,依次点击“系统设置”->“自定义标签管理”->“2006海蓝”->“{$MY_动易2006海蓝首页顶}”->点击“修改”链接,在出现的自定义标签内容页面中,找到“{$ShowChannel} {$Rss}{$Wap}”,修改成“{$ShowChannel} |繁体中文|{$Rss}{$Wap}”即可。当然您也可以放在任何您想要放置的地方。   2. 在页面中放以下代码:      这个是每个页面中要调用繁体和简体互换的JS代码,您放在页面底部,如前面。   如果您用的是默认的动易模板,则进入网站后台,依次点击“系统设置”->“自定义标签管理”->“2006海蓝”->“{$MY_动易2006海蓝网页底}”->点击“修改”链接,在出现的自定义标签内容页面中,找到“”,修改成“”即可。当然您也可以放在任何您想要放置的地方。   小提示:您也可以不修改自定义标签,而是通过系统模板批量替换功能来添加以上的代码。但利用修改模板的自定义标签内容更方便。在修改了自定义标签后要记得更新您网站的缓存。若您开启了网站的生成功能,则在添加了代码后要生成全部相关的页面。   三、繁简互换JS文件参数的修改:   您可以进一步修改繁简互换JS文件(Std_StranJF.Js)以达到您想要的效果。请以记事本打开修改Std_StranJF.Js文件:   var Default_isFT = 0 //默认是否繁体,0-简体,1-繁体   var StranIt_Delay = 50 //翻译延时毫秒(设这个的目的是让网页先流畅的显现出来)   同时如果您的网站中有本文件中没有放入的繁体与简体互换的内容,则可以在本文件中进一步添加与扩充,以满足您的应用需求。   小提示:本插件同时可用于论坛等需要进行繁简互换的地方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值