这个小工具中便使用了这个例子:http://www.soulteary.com/blog/show-437-1.html 发一段一直在用的网页编码函数,希望能帮得上有需要的人。
我们常常看到百度Google搜索的地址中出现一堆%E8%8A%B1%E5%A5%BD%E6%9C%88%E5%9C%86之类的代码。
这些代码其实是被转义后的汉字,使用下面的函数可以轻松的将汉字转换为这种代码。
Private Function UTF8EncodeURI(strTmp As String) As String
Dim lngLen As Long, lngAsc As Long, lngIndex As Long
Dim strChar As String, strUni As String, strResult As String
If strTmp = "" Then
UTF8EncodeURI = strTmp
Exit Function
End If
lngLen = Len(strTmp)
For lngIndex = 1 To lngLen
strChar = Mid$(strTmp, lngIndex, 1)
lngAsc = AscW(strChar)
If lngAsc < 0 Then lngAsc = lngAsc + 65536
If (lngAsc And &HFF80) = 0 Then
strResult = strResult & strChar
Else
If (lngAsc And &HF000) = 0 Then
strUni = "%" & Hex$(((lngAsc 2 ^ 6)) Or &HC0) & Hex$(lngAsc And &H3F Or &H80)
strResult = strResult & strUni
Else
strUni = "%" & Hex$((lngAsc 2 ^ 12) Or &HE0) & "%" & Hex$((lngAsc 2 ^ 6) And &H3F Or &H80) & "%" & Hex$(lngAsc And &H3F Or &H80)
strResult = strResult & strUni
End If
End If
Next
UTF8EncodeURI = strResult
End Function
Private Function GBKEncodeURI(strTmp As String) As String
Dim bData() As Byte
Dim strResult As String
Dim lngUbound As Long, lngLbound As Long, lngIndex As Long
strResult = ""
bData = StrConv(strTmp, vbFromUnicode)
lngUbound = UBound(bData)
lngLbound = LBound(bData)
For lngIndex = lngLbound To lngUbound
strResult = strResult & "%" & Hex$(bData(lngIndex))
Next
GBKEncodeURI = strResult
End Function