http://community.csdn.net/Expert/topic/2896/2896938.xml?temp=.8973505'你用StrConv这个函数就可以搞定了! '****** 简繁体互换 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 IfEnd FunctionPrivate Sub Command1_Click() Text1.Text = GBBIG5("这是个测试程序", 2) End Sub
我上面的码表是简体转繁体的,你可以做反表运算。码表是一个-32768 To 32767的Integer数组,假如U是一个汉字的UniCode,T()是数组,那么T(U)是该汉字对应繁体的UniCode反表算法是:T2(T1(i))=i T1()是简体转繁体表,T2为繁体转简体表。但是这种转换有一些字符不准确。我最近也在研究繁体转简体表。
如果是数据库的简繁体转换,可以用.net写一个简单的小程序就可以完成. 所用函数为:StrConv,在.NET中该函数得到了加强 数据库连接参数请修改 Dim Conn As New ADODB.Connection Dim Reco As New ADODB.Recordset Dim Inti As Integer conn.ConnectionString = "User ID=" & TextBox3.Text & ";Data Source='" & TextBox1.Text & "';Tag with column collation when possible=False;Initial Catalog=" & TextBox2.Text & ";Use Procedure for Prepare=1;Auto Translate=True;Persist Security Info=False;Provider='SQLOLEDB.1';Workstation ID=MARKET;Use Encryption for Data=False;Packet Size=4096;pwd=" & TextBox4.Text & "" conn.Open() Reco.Open("select * from 你用的表", Conn, 1, 3) Do While Not reco.EOF Inti = Inti + 1 'SimplifiedChinese 转换成简体 'Reco.Fields(1).Value = StrConv(Reco.Fields(6).Value,VbStrConv.SimplifiedChinese) 'traditionalchinese 转换成繁体 'Reco.Fields(1).Value = StrConv(Reco.Fields6).Value,VbStrConv.traditionalchinese) Reco.Update() reco.MoveNext() Loop Reco = Nothing Conn.Close()
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 IfEnd FunctionPrivate Sub Command1_Click() Text1.Text = GBBIG5("这是个测试程序", 2) End Subfor help:這段代碼我試過好象有問題,它顯示的是亂碼
'****** 简繁体互换 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 IfEnd FunctionPrivate Sub Command1_Click()
Text1.Text = GBBIG5("这是个测试程序", 2)
End Sub
http://community.csdn.net/Expert/topic/2939/2939892.xml?temp=.2083704GBToBig3.TAB转换表文件在如下地址下载:
(该文件肯定存在,如果“找不到服务器”请多尝试几次,因为51.net空间不大稳定。)
http://smallfairy.51.net/GBToBig5.zip
所用函数为:StrConv,在.NET中该函数得到了加强 数据库连接参数请修改
Dim Conn As New ADODB.Connection
Dim Reco As New ADODB.Recordset
Dim Inti As Integer
conn.ConnectionString = "User ID=" & TextBox3.Text & ";Data Source='" & TextBox1.Text & "';Tag with column collation when possible=False;Initial Catalog=" & TextBox2.Text & ";Use Procedure for Prepare=1;Auto Translate=True;Persist Security Info=False;Provider='SQLOLEDB.1';Workstation ID=MARKET;Use Encryption for Data=False;Packet Size=4096;pwd=" & TextBox4.Text & ""
conn.Open()
Reco.Open("select * from 你用的表", Conn, 1, 3)
Do While Not reco.EOF
Inti = Inti + 1
'SimplifiedChinese 转换成简体
'Reco.Fields(1).Value = StrConv(Reco.Fields(6).Value,VbStrConv.SimplifiedChinese)
'traditionalchinese 转换成繁体
'Reco.Fields(1).Value = StrConv(Reco.Fields6).Value,VbStrConv.traditionalchinese)
Reco.Update()
reco.MoveNext()
Loop
Reco = Nothing
Conn.Close()
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 IfEnd FunctionPrivate Sub Command1_Click()
Text1.Text = GBBIG5("这是个测试程序", 2)
End Subfor help:這段代碼我試過好象有問題,它顯示的是亂碼