您的位置:首页 > 其它

繁简转换问题!

2004-11-26 14:25 519 查看
http://www.waynedeng.com/blog/showlog.asp?cat_id=25&log_id=481

公司的网站需要提供三种语言:英、繁体中文和简体中文。英文和中文区别好办,语言相差太大,只能存放在两个数据fields中。但是繁体和简体一般都是只存一个,然后通过一个程序自动转换。

以前一直都用Kanhan(http://www.kanhan.com/)自动转换的,kanhan需要一台专用的服务器,例如translate.bciasia.com,然后看繁体的网站(big5编码)就是translate.bciasia.com/b5/www.bciasia.com,相当于一个转译的代理中介。感觉这种方式不太好,一般的形式都是www.bciasia.com/b5。例如IBM的网站架构就是www.ibm.com/cnwww.ibm.com/tw……

现在想要自己做一个繁简转换的程序,一研究起来,感觉真的不简单。难怪Kanhan能上市啊!

首先第一个问题就是内码转换,简体一般是gb内码,转成big5的内码就问题多多,一般都是通过一个转换对照表来转换,有些汉字转换过去就是一个问号!
下面是一个比较简单的转换方法。

以下是代码片段:
'****** 简繁体互换 GB-->BIG5 Or BIG5-->GB *****************
'参数sStr为需要转换的文本
'参数iConver为要转化的类型,为1时表示繁体到简体的转换,为2时表示简体到繁体的转换
Function GBBIG5(sStr As String, iConver As Integer) As String
On Error Resume Next
Dim STR
If iConver = 1 Then 'BIG5-->GB
STR = StrConv(sStr, vbFromUnicode, &H804)
GBBIG5 = StrConv(STR, vbUnicode, &H404)
ElseIf iConver = 2 Then 'GB-->BIG5
STR = StrConv(sStr, vbFromUnicode, &H404)
GBBIG5 = StrConv(STR, vbUnicode, &H804)
End If
End Function
有些内码转换的程序做的比较好,比如有一个GBToBigOCX控件(

big2gb2.zip
)。,基本上都可以转换,但是下面的问题还是不能解决。
繁简汉字之间往往不能一一对应!这是一个致命的问题。
例如:瞭解 -> 了解 瞭望 -> 瞭望;“標準”繁換簡是“标准”,但“标准”簡換繁卻是“標准”……
还有若干语言习惯的问题,例如同一个地名的称呼就不一样,就不一一列举了。

解决这个问题的方法一般是建立一个词库,单独列出一一转换。

当然还是有许多软件做的挺不错的,例如上面提到的Kanhan还有就是Microsoft的word。Word里面就有个繁简转换的功能,想到这里我就设想是否能利用word来进行转换呢?

其实做起来也很简单:

以下是代码片段:
Dim w As New Word.Document
Function Convert(ByVal s) As String
With w.Content
.Text = s
.TCSCConverter WdTCSCConverterDirection:= _
wdTCSCConverterDirectionSCTC, CommonTerms:=True, UseVariants:=True
Convert = .Text
End With
End Function
Word中的繁简转换也是可以定义词组的,而且考虑了港澳台的习惯,可以说转译的效果还不错。但是翻译的速度挺慢的,而且随后发现了一个问题——它不进行内码转换,也就是说转换的结果是所谓的假繁体,似乎是zh-chs to zh-cht? 至于什么是zh-chs和zh-cht不大清楚,只是在IE中编码必须设定为GB。不知道在繁体的word中是否内码就是Big5,这个需要尝试一下了。

最后没有办法,还是只能用Kanhan了,实在不行用XMLHTTP访问translate.bciasia.com/b5/www.bciasia.com再在cfm中输出结果。呵呵,最后的杀手锏!

参考文献:
1、http://community.csdn.net/Expert/topic/3458/3458436.xml?temp=.8015863
2、http://zh.wikipedia.org/wiki/Wikipedia_talk:%E7%B9%81%E7%AE%80%E4%BD%93%E9%97%AE%E9%A2%98
3、http://www.cnblogs.com/snowwolf/articles/2735.html
4、http://www.china-askpro.com/msg14/qa45.shtml
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: