我自己也搞出来了.Private Sub Command1_Click() s = AscW("小") s = hex(s) s = "$u"&s print s End Sub 不过还是要谢谢大家,每个人都有分.还有,我要转换的字符串里面有汉字,还有数字及英文,而我不要把数字和英文转换了,怎么办.帮忙写个程序.谢谢
Private Sub Form_Load() s = "我用 visual sniffer 截取了一段代码,发现里面的汉字全部变成了$u5C0F这样子的 " For i = 1 To Len(s) s1 = Mid(s, i, 1) s2 = s2 & Hex(AscW(s1)) & " " Next Text1.Text = s2 End Sub
用 Asc() 函数对每个字符进行判断:Sub TextExg() Dim strTemp$, strOut$, sChar$, i& strTemp = "字符串里面有汉字,ABC,123456%+-*/& 还有数字及英文Englist ****" strOut = "" For i = 1 To Len(strTemp) sChar = Mid$(strTemp, i, 1) If (Asc(sChar) < 0) Then strOut = strOut & "$U" & Hex$(AscW(sChar)) Else strOut = strOut & sChar End If Next Debug.Print strOutEnd Sub
不考虑数字和字母 Private Sub Form_Load() s = "我用 visual sniffer 截取了一段代码,发现里面的汉字全部变成了$u5C0F这样子的 " For i = 1 To Len(s) s1 = Mid(s, i, 1) Select Case Asc(s1) Case 48 To 57, 65 To 90, 97 To 122 Case Else s2 = s2 & Hex(AscW(s1)) & " " End Select Next Text1.Text = s2 End Sub
我把大家的方法修改了一下Private Sub Command1_Click() s = "小丽2008 " For i = 1 To Len(s) s1 = Mid(s, i, 1) Select Case Asc(s1) Case 48 To 57, 65 To 90, 97 To 122 Case Else s2 = s2 & "$u" & Hex(AscW(s1)) End Select Next Text1.Text = s2 End Sub出来的是 "$u5C0F$u4E3D$u20" 不是我要的"$u5C0F$u4E3D2008"
Option ExplicitSub Main() Dim s1 As String, s2 As String, ch As String Dim i As Long, l As Long s1 = "小丽2008 " For i = 1 To Len(s1) ch = Mid$(s1, i, 1) l = AscW(ch) If l > 255 Then s2 = s2 & "$u" & Hex(l) Else s2 = s2 & ch End If Next
Debug.Print s2 End Sub
Option Explicit Dim s, s1, s2 Dim i As Integer Private Sub Command1_Click() s = "小丽2008 " For i = 1 To Len(s) s1 = Mid(s, i, 1) If AscW(s1) > 128 Then s2 = s2 & "$u" & Hex(AscW(s1)) Else s2 = s2 & s1 End If Next Text1.Text = s2 End Sub
Private Sub Command1_Click()
Text1 = Hex(AscW("小"))
End Sub
Text1 = ChrW(&H5C0F)
End Sub
返回一个 Integer,代表字符串中首字母的字符代码。
语法
Asc(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
说明
在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。
注意 AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。Chr 函数
返回 String,其中包含有与指定的字符代码相关的字符 。
语法
Chr(charcode)
必要的 charcode 参数是一个用来识别某字符的 Long。
说明
0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 – 255。然而,在 DBCS 系统,charcode 的实际范围为 -32768 到 65535。
注意 ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。
s = AscW("小")
s = hex(s)
s = "$u"&s
print s
End Sub
不过还是要谢谢大家,每个人都有分.还有,我要转换的字符串里面有汉字,还有数字及英文,而我不要把数字和英文转换了,怎么办.帮忙写个程序.谢谢
s = "我用 visual sniffer 截取了一段代码,发现里面的汉字全部变成了$u5C0F这样子的 "
For i = 1 To Len(s)
s1 = Mid(s, i, 1)
s2 = s2 & Hex(AscW(s1)) & " "
Next
Text1.Text = s2
End Sub
strTemp = "字符串里面有汉字,ABC,123456%+-*/& 还有数字及英文Englist ****"
strOut = ""
For i = 1 To Len(strTemp)
sChar = Mid$(strTemp, i, 1)
If (Asc(sChar) < 0) Then
strOut = strOut & "$U" & Hex$(AscW(sChar))
Else
strOut = strOut & sChar
End If
Next
Debug.Print strOutEnd Sub
Private Sub Form_Load()
s = "我用 visual sniffer 截取了一段代码,发现里面的汉字全部变成了$u5C0F这样子的 "
For i = 1 To Len(s)
s1 = Mid(s, i, 1)
Select Case Asc(s1)
Case 48 To 57, 65 To 90, 97 To 122
Case Else
s2 = s2 & Hex(AscW(s1)) & " "
End Select
Next
Text1.Text = s2
End Sub
我立刻结贴.谢谢
Debug.Print ChrW(&H5C0F)
Debug.Print ChrW(&H6709)
Debug.Print "$u" & Hex(AscW("小"))
s = "小丽2008 "
For i = 1 To Len(s)
s1 = Mid(s, i, 1)
Select Case Asc(s1)
Case 48 To 57, 65 To 90, 97 To 122
Case Else
s2 = s2 & "$u" & Hex(AscW(s1))
End Select
Next
Text1.Text = s2
End Sub出来的是 "$u5C0F$u4E3D$u20"
不是我要的"$u5C0F$u4E3D2008"
Dim s1 As String, s2 As String, ch As String
Dim i As Long, l As Long
s1 = "小丽2008 "
For i = 1 To Len(s1)
ch = Mid$(s1, i, 1)
l = AscW(ch)
If l > 255 Then
s2 = s2 & "$u" & Hex(l)
Else
s2 = s2 & ch
End If
Next
Debug.Print s2
End Sub
Dim s, s1, s2
Dim i As Integer
Private Sub Command1_Click()
s = "小丽2008 "
For i = 1 To Len(s)
s1 = Mid(s, i, 1)
If AscW(s1) > 128 Then
s2 = s2 & "$u" & Hex(AscW(s1))
Else
s2 = s2 & s1
End If
Next
Text1.Text = s2
End Sub