簡單實用的繁體與簡體互相轉換的代碼作
Private Declare Function LCMapString Lib "kernel32" Alias _
"LCMapStringA" (ByVal Locale As Long, ByVal dwMapFlags As _
Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, _
ByVal lpDestStr As String, ByVal cchDest As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" _
(ByVal lpString As String) As Long
Dim STf As String, 繁體字元串
Dim STj As String, 簡體字元串
Dim STlen As Long, 待轉換字串長度
Sub Test1() 'Gb碼簡體轉繁體
STj = "中華人民共和國"
STlen = lstrlen(STj)
STf = Space(STlen)
LCMapString &H804, &H4000000, STj, STlen, STf, STlen
Debug.Print STf
End Sub
Sub Test2() 'Gb碼繁體轉簡體
STf = "中華人民共和國"
STlen = lstrlen(STf)
STj = Space(STlen)
LCMapString &H804, &H2000000, STf, STlen, STj, STlen
Debug.Print STj
End Sub
Sub Test3() '國標繁體轉港台繁體
Te = "君不見黃河之水天上來,奔流到海不復回。"
ST = StrConv(Te, vbFromUnicode)
ST = StrConv(ST, vbUnicode, &H804)
ST = StrConv(ST, vbFromUnicode, &H404)
Te = StrConv(ST, vbUnicode)
Debug.Print Te
End Sub
Sub Test4() '港台繁體轉國標繁體
Te = "ǎ獨猠ㄓ瑈確"
ST = StrConv(Te, vbFromUnicode)
ST = StrConv(ST, vbUnicode, &H404)
ST = StrConv(ST, vbFromUnicode, &H804)
Te = StrConv(ST, vbUnicode)
Debug.Print Te
End Sub
|