请问如何在VB中判断textbox中输入的是简体字还是繁体字,因想要禁止简体输入
请问如何在VB中判断textbox中输入的是简体字还是繁体字,因想要禁止简体输入 问题点数:50、回复次数:4Top
1 楼aspower_(敬个礼 握个手 大家都素好朋友!)回复于 2006-07-04 10:59:42 得分 0
GB/BIG5内码转换和辨别
VB提供的StrConv这个函数,完全可以解决简繁体的转换问题。下面是一个简繁体的转换
的函数,可以实现简体到繁体、繁体到简体的相互转化。
'****** 简繁体互换 GB-->Unicode-->BIG5
Or BIG5-->Unicode-->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
注:使用这一函数,结果实际上显示的仍是繁体!所以我们只能称为内码转换
如何判断文本是GB还是Big5
1. GB code的内码的两个字节都是从A0H - FEH之间的
2. BIG code的内码的第一个字节是80H - FFH,第二个字节是00H - FFH
所以,你要浏览全文,看看是否有第二个字节是小于7FH的汉字,如果有的话,一般是BIG code的。
当然也有特殊情况,不过非常少见的
Top
2 楼aspower_(敬个礼 握个手 大家都素好朋友!)回复于 2006-07-04 11:00:25 得分 25
如何判断文本是GB还是Big5
如何判断文本是GB还是Big5
一 般 是 这 样 辨 别 的 :
1. GB code的 内 码 的 两 个 字 节 都 是 从 A0H - FEH之 间 的
2. BIG code 的 内 码 的 第 一 个 字 节 是 80H - FFH, 第 二 个 字 节 是 00H - FFH
所 以 , 你 要 浏 览 全 文 , 看 看 是 否 有 第 二 个 字 节 是 小 于 7FH的 汉 字 , 如 果 有 的 话 , 一 般 是BIG code的 。 当 然 也 有 特 殊 情 况 , 不 过 非 常 少 见 的
Top
3 楼fxy_2002(阿勇)回复于 2006-07-04 12:48:25 得分 25
通过判断BIG5第二个字节的方法不可靠,我试过。
www.china-askpro.com/msg6/qa41.shtml
50多个GB文件,识别时错了10来个(识别成BIG5)。
不过确实没有太好的办法,网上还有一种权重法,需要字数80以上才比较准确。
www.ibiblio.org/pub/packages/ccic/software/data/chrecog.gb.html
Top
4 楼shohoku_11(Azure)回复于 2006-07-06 04:29:59 得分 0
嗯,我也觉得这个方法好像在判别准确率要求高的场合不太适用。但还是感谢两位!Top




