先是大家得设置个Word二〇〇七,Word二零零五下载。

标题:如何高效达成文书档案的简繁体转变?

 

cconv

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

轻易窥见,对于多解的字,OpenOffice.Org未改换,iconv按单一法则调换,而cconvOpenCC和Google翻译则能科学转变。

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

另外,iconv不可能管理混合编码的公文。

使用cconv转换20M含部分乱码的公文文件耗费时间仅数秒,且意义非常非凡,不会像iconv相像蒙受“ә”等丰盛规字符或乱码字符时报错甘休调换。(推荐使用卡塔尔

 

一时供给把一部分繁体字的救助页面变换来简体字的,网络寻找啦下,还真找到多少个好用的工具:zh-autoconvert
,在zh-autoconvert [Debian
包介绍]有它的牵线,这几个工具是Debian中文客户于广辉先生写的电动中文辨识转码程序包,提供多少个利用程序autogb
和 autob5,在Debian下很好用apt-get install zh-autoconvert
就能够安装好。八个工具使用办法也很简短
专门的职业的吩咐行为
 autogb/autob5 [选项] <输入流 >输出流
   选项有
    -i 输入流的编码
    –input 输入流的编码

    -o 输出流的编码
    –output 输出流的编码

如此那般就足以同期管理繁简体和编码难点啊。
别的 可选的编码有 gb, big5, hz, uni, utf7 可能 utf8

实则平日大致利用能够利用如下的情势
  autogb < 输入流(文件)   >输出流(文件)
        把输入流中的繁体字调换来简体字

  autob5 < 输入流(文件)   >输出流(文件)
        把输入流中的简写转变来繁体字

唯独那些调换仅仅是字的转换,对于原本繁简体字中留存的多对一的意况未有特意管理,都以接收的常用字,所以经常繁转简难题十分小,简转繁可能存在生造词(别字)情形,那一点要留意。

除此以外找到了八个windows下的工具ConvertZ那几个工具得以兑现比较足够的转换,非常还是能定制一些字词的调换对应涉及,也算是很有益于的工具啦。

 

其实说到编码转换,那就不得不说到iconv这个库了,如果已经安装了这个工具,那在命令行下直接打这个命令就行了。下面就用这个工具来实现中文系统下的常用编码转换。

首先,来了解一下iconv这个命令的使用方法。命令格式如下

iconv -f 编码 -t 编码 文件名

-f 参数指所要转换文件的文件编码,当然必须事先知道文件的编码,不然不能正确转换。

-t 参数指希望转换成的文件编码,当然应该知道所指定文件的编码能不能转换成该编码,不然转换后的结果可能一无所用。比如你将中文编码转换成西欧的某种编码的话,是没有什么意义的。

文件名 就是你希望转换的文件的名称的,当然也可以包含路径了。

比如将a.txt文件用GB2312(简体)转换成BIG5(繁体),命令如下:

$iconv -f GB2312 -t BIG5 a.txt

当然也可以使用iconv -l来查看都有哪些编码可用,命令如下:

$iconv -l

那么,如果不知道文件的编码怎么办?比如我的系统中有繁体字编码的文件,也有UTF-8编码的文件,又有简体字编码的文件,但是系统说使用的编码是简体的。怎样把所有文件的编码都转换成简体字,或者怎样将所有文件的编码变成繁体字编码,或者怎样将所有的文件都转换成UTF-8编码呢?下面的这段程序将告诉你去怎样实现这个功能。

#!/bin/bash

#文件名
fname=$1
#临时文件,用来保存转换的结果
tmpfile="cc`date +%0H%0M%0S`.liu"
#没有输入文件名
if [ -z ${fname} ] ; then
echo "Bad file name. ";
exit;
fi
#输入的文件不存在
if [ ! -f ${fname} ] ; then
echo "File is not existed.FILE="${fname};
exit;
fi
################################################
# f_code:现有文件的编码,当不太清楚现有文件的编码的时候,
# 可以同时指定的几种可能的编码
# t_code:希望转换成的目标编码
################################################
#比如要将GB2312或者UTF-8的文件转换成BIG5(繁体)文件
t_code="BIG5" #目标编码
f_code="GB2312 UTF-8" #可以转换的文字编码

#判断系统文字编码是否为GB2312,是的话则将BIG5或者UTF-8编码的文件转换成系统一样
#的GB2312
echo $LANG | grep -i GB2312> /dev/null
if [ $? -eq 0 ] ; then
t_code="GB2312" #目标编码
f_code="BIG5 UTF-8" #可以转换的文字编码
fi

#判断系统文字编码是否为BIG5, 是的话则将GB2312或者UTF-8编码的文件转换成系统一样
#的GB2312
echo $LANG | grep -i BIG5 > /dev/null
if [ $? -eq 0 ] ; then
t_code="BIG5" #目标编码
f_code="GB2312 UTF-8" #可以转换的文字编码
fi
#如果要把GB2312,BIG5文字编码的文件统一转换成UTF-8,则应该这样
t_code="UTF-8" #目标编码
f_code="GB2312 BIG5" #可以转换的文字编码

#当然你也可以任意设置你需要互相转换的编码,但主意要保证编码之间可以自由转换。比如
#你要将GB2312转换成某种西欧编码,则没有什么意义了。
normal_msg=""
error_msg=""
#依次尝试从可以转换的文字编码开始对文件进行编码转换
for code in ${f_code} ; do
#文字编码转换
iconv -f $code -t $t_code ${fname} > ${tmpfile}
#转换成功,一旦转换成功则不用再尝试用其他编码来读取文件
if [ $? -eq 0 ] ; then
normal_msg="ICONV SUCCESSED! FILENAME=${fname} F_CODE=$code,T_CODE=$t_code"
break
else #转换失败
if [ ! -z "${error_msg}" ] ; then
error_msg="${error_msg} "
fi
error_msg="${error_msg}ICONV FAILED! FILENAME=${fname} F_CODE=$code,T_CODE=$t_code"
fi
done
#输出转换结果消息
#转换成功,则输出转换成功消息;所有尝试转换都失败的时候,则输出所有转换失败消息
if [ -z "${normal_msg}" ] ; then
echo -e ${error_msg}
else
cp -f ${tmpfile} $fname
echo ${normal_msg}
fi

#删除临时文件
if [ -f ${tmpfile} ] ; then
rm -f ${tmpfile};
fi

在上面的程序中,实际上只是实现了一个文件的转换,如果要实现多个文件的转换的话,该怎么办了,其实很简单了,只需要遍历一下文件就行了。遍历文件的方法很多,也就不详细解说了,下面仅举一个用find命令来查找文件并对找到的文件进行编码转换。命令很简单,如下:

$find . -type f -name ‘*.txt’ | xargs -l sh cc.sh

其中cc.sh是上面的程序文件。该命令查找当前目录下所有的后缀为txt的文件比对其进行编码转换。

在上面的程序中,为了说明方便,文件编码和转换的目标编码都是在程序里设定的,如果需要更加实用一点的话,可以把原文件的编码和转换的目标编码都作为参数来输入,这样的话,这个程序就不光是中文系统下的文件编码转换了,日文,韩文等等编码的转换也能很轻松实现了。

    首先发个牢骚吧,简繁转换的问题让我在网上搜了好久都没有好的答案,得到的回答尽是让我建个简繁体字的对照表然后自己查表。我就不信了,这都什么年代了,这么常规的功能还要自己造轮子。果然工夫不负苦心人,轮子终于让我找到了,名叫opencc,ibus-pinyin里的繁体部分使用了它,项目主页地址:
    http://code.google.com/p/opencc/
    不过opencc没有一个简单的教程挺让我抓狂,自己看它的源代码才搞清楚怎么弄,为造福各位和我一样为简繁转换苦恼了很久的童鞋,本人献上这篇文章,欢迎转载,转载请注明作者RunningOn。
    在献上教程之前,提醒下面两类童鞋可以不用看本文:
    1. 写Windows程序的人。Windows自己提供了LCMapString API可以做简繁转换,搜它就行了,网上例程也多。
    2. 用python的人。python下我使用过两个包,一个是jianfan,简单直观,但有bug,有些常用的字都不能转换,推荐度一般。另外一个是opencc的python绑定,主页在http://pypi.python.org/pypi/opencc-python/,网页下方有win和linux的安装包,而且网页里有教程。看不懂英文?我了个擦,那网页里面才几个单词......

python的jianfan包

Linux下用C语言如何进行简繁转换。以Ubuntu 11.10为例吧,其它发行版应该大同小异。你还需要知道一些文字编码的基础知识。
    关于编码的知识这里不打算详细介绍,但你需要知道:中文中常用的编码有gb2312, gbk, gb18030, big5, utf8和unicode。严格来讲gb18030和utf8只是unicode的编码方式,但本文中简单起见把它们认为是不同的编码,想搞清楚编码关系的自己去搜吧,资料很多。
    gb2312只含简体字,big5只含繁体字,其它几种编码都同时有简体和繁体字,gb2312可以简单认为是gbk的简体子集。一般来讲简繁转换同时包含了编码的转换,比如香港地区普遍使用big5编码,转为简体字就要先转化为gbk, gb18030, utf8编码中的一种再将繁体转化为简体。
    opencc只是一个简繁转换的库,要转换编码我们还需要一个有名的库iconv。这两库的安装方法:
    sudo apt-get install libiconv-hook-dev libopencc-dev
    libopencc-dev没有提供rpm的包,也没有提供只含库的源码,所以最方便的还是apt-get。
    iconv的教程还是有不少的,这里就不做太多介绍了。但注意不是所有编码都能自由转换的,比如如果你是想把big5直接转为gb2312是不行的。
    简繁转换的通用思路是先将编码转换为utf8,再在utf8下进行简繁转换,再将utf8转为想要的编码(如果需要)。不多说,直接上代码,该解释的都写到注释里了:
#include <iconv.h>
#include <opencc/opencc.h>
#include <stdlib.h>
#include <stdio.h>
#include <memory.h>

///使用iconv库将字符串从编码from_charset转换到to_charset,输入是inbuf,输出是outbuf
void m_iconv(const char *from_charset, const char * to_charset,
        const char *inbuf, size_t inlen, char *outbuf, size_t outlen)
{
    memset(outbuf,0,outlen);
    iconv_t cd;
    cd = iconv_open(to_charset,from_charset);
    if (cd==0) return;
    iconv(cd, (char **)&inbuf, &inlen, &outbuf, &outlen);
    iconv_close(cd);
}

///繁体转化为简体,编码从src_charset转换为dest_charset,输入是src,输出是dest
void cht2chs(const char* src_charset, const char * dest_charset,
    const char *src, char *dest)
{
    char utf8[1000], tempout[1000], *raw=(char *)src;
    m_iconv(src_charset, "utf8", raw, strlen(raw), utf8, sizeof(utf8));    //先转为utf8
    opencc_t od = opencc_open(OPENCC_DEFAULT_CONFIG_TRAD_TO_SIMP);
    char * chsutf8 = opencc_convert_utf8(od, utf8, strlen(utf8));    //简繁转换
    strcpy(tempout, chsutf8);
    free(chsutf8);    //一定要free不然会内存泄漏
    opencc_close(od);
    size_t len = strlen(tempout);
    m_iconv("utf8", dest_charset, tempout, len, dest, len*2+1);    //再转到目标编码
}

///简体转化为繁体,编码从src_charset转换为dest_charset,输入是src,输出是dest
void chs2cht(const char* src_charset, const char * dest_charset,
    const char *src, char *dest)
{
    char utf8[1000], tempout[1000], *raw=(char *)src;
    m_iconv(src_charset, "utf8", raw, strlen(raw), utf8, sizeof(utf8));    //先转为utf8
    opencc_t od = opencc_open(OPENCC_DEFAULT_CONFIG_SIMP_TO_TRAD);
    char * chsutf8 = opencc_convert_utf8(od, utf8, strlen(utf8));    //简繁转换
    strcpy(tempout, chsutf8);
    free(chsutf8);    //一定要free不然会内存泄漏
    opencc_close(od);
    size_t len = strlen(tempout);
    m_iconv("utf8", dest_charset, tempout, len, dest, len*2+1);    //再转到目标编码
}

int main()    //main里放测试代码
{
    char src[] = "\264\372\270\325", dest[100];    //big5编码的繁体的"测试"
    cht2chs("big5", "utf8", src, dest);    //根据实际情况,把"utf8"改为你的locale
    printf("%s\n", dest);    //输出"测试"
    return 0;
}

将以上代码保存到test.c,可以根据实际情况将main函数第二行的utf8改为你的locale。
编译方法:
    gcc -o test test.c -lopencc -liconv_hook
运行:
    ./test
    然后就可以看到输出两个简体字"测试"。
    把m_iconv, cht2chs和chs2cht这三个函数复制到你的代码里就可以直接使用了。

    最后再说明一下,opencc算是所有简繁转换库中做得很不错的了,能处理异体字,还能对一简对多繁和一繁对多简的情况自动处理。之前有一个简繁转换的cconv项目就做得不太好,而且它用GPL协议,对开发者限制太多。而opencc使用Apache开源协议,很宽松。opencc项目很赞,可惜作者在教程上没花什么功夫,所以很长时间都没有在网上看到谁使用它。如果opencc作者看到此文请写个官方的教程吧,或者把本文直接链过去:)

 

改换选拔的文字

解答:利用Word自带的专门项目功用按键直接消除。

具体方法如下:打开Word文档,然后Ctrl+A全选文书档案(要是整个字体必要更改的话),在“审阅”选项卡中单击“简转繁”开关就能够。(下图1处)

澳门威呢斯人 1

效果如下图。

澳门威呢斯人 2

尚未完,那要是遇上翻译但是来的处境呢?举例在西藏把大陆的“猛豹”称之为“大浣熊”,怎么着贯彻机关翻译?

单击“简繁转变”按键,在新美食指南里单击“自定义辞书”(下图3处)。

澳门威呢斯人 3

在编辑处将大华熊与大杜洞尕的附和关系填好后,单击“改过”开关。(下图4处 )

澳门威呢斯人 4

设置甘休后,在进展简繁转换,“白熊”就能够自行替换来“花头熊”效果。我们请能够和谐出手试试看成效。

总结:总体来说繁简调换依然很贴心的,主假若遇上特殊词语差别期候,供给用到自定义辞典的办法,设置能够采纳Excel收拾成对应辞书,通过导入导出的点子批量进展设置。

  结合Excle,在此中成列的丰裕亟需的符号,然后将多列复制到别的文本编辑器中,方便起见分化编辑器使用将字符编码设置为UTF-8

测量检验结果

注意:有如拼写检查成效,中文简繁转变不帮衬转变 SmartArt或别的插入对象内的文字。

在台信用合作社上班正是有三个如此的难为,给内地的顾客看要求简体,给业主看必要复杂,辛亏Word辅助那些职能,赶紧来寻访怎么选取?

 

OpenCC

OpenCC
是跨平台、多语言的盛放普通话调换库,除了主导的简繁调换功效外,客户还足以采取对两样用词习于旧贯和异体字的管理形式。

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

当今互连网上比较盛行繁体字,因为繁体字看起来相比较性子化,很切合那多少个玩洋气天性的人的水平。其实大家只须要三个Word二零零七就能够具备那项效率,大家只要求轻易地在Word二〇〇五中输入简体字,然后进行叁遍转码将简体字转变为繁体字,就能够实现全部操作。

 

Google翻译功效

Google翻译也得以做简繁转变,效果分析见前边。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注