UNICODE编码问题
今天在ECLIPSE里面看JODE(JAD) CLASS反编译出来的代码,发现汉字都用UNICODE标示,理解起来非常不方便,
例如:
/u65B0/u95FB/u680F/u76EE/u8BBE/u7F6E
就是汉字:“新闻栏目设置”
为了察看方便,特写一段VB代码来快速转换:
Public Function Find(ByVal strCodes As String) As String
On Error Resume Next
Dim strRet, strTemp As String
strRet = ""
strTemp = ""
Dim pos As Integer
pos = 0
Dim lngCode As Long
Dim strTemp2 As String
Dim strlist() As String
strlist = Split(strCodes, "/")
For pos = 0 To UBound(strlist)
' Debug.Print strlist(pos)
' strTemp = FindHZ(strlist(pos))
' Debug.Print Right(strlist(pos), 4)
strTemp2 = strlist(pos)
If Len(strTemp2) > 0 Then
If Len(strTemp2) = 5 Then
If Left(strTemp2, 1) = "u" Then
lngCode = CLng("&H" & Right(strTemp2, 4))
strTemp = ChrW$(lngCode)
Else
strTemp = strTemp2
End If
Else
If Len(strTemp2) > 5 Then
If Left(strTemp2, 1) = "u" Then
lngCode = CLng("&H" & Mid(strTemp2, 2, 4))
strTemp = ChrW$(lngCode)
strTemp = strTemp & Right(strTemp2, Len(strTemp2) - 5)
Else
strTemp = strTemp2
End If
Else
strTemp = strTemp2
End If
End If
If Len(strTemp) > 0 Then
strRet = strRet & strTemp
Else
strRet = strRet & "X"
End If
End If
' Debug.Print strRet
Next
' Do While (pos >= 0)
' pos = InStr(0, strCodes, "u", vbTextCompare)
' Split
' Debug.Print pos
' strTemp = Mid(strCodes, pos, 5)
' Debug.Print strTemp
' strCodes = Right(strCodes, Len(strCodes) - pos - 5)
' Debug.Print strCodes
'
' strRet = strRet & FindHZ(strTemp)
'
' Loop
Find = strRet
' Clipboard.SetText strRet, vbCFText
End Function