解码一个编码后的URL函数: Public Function URLDecode(sEncodedURL As String) As String On Error Goto Catch Dim iLoop As Integer Dim sRtn As String Dim sTmp As String If Len(sEncodedURL) > 0 Then For iLoop = 1 To Len(sEncodedURL) sTmp = Mid(sEncodedURL, iLoop, 1) sTmp = Replace(sTmp, "+", " ") If sTmp = "%" and LEN(sEncodedURL) > iLoop + 2 Then sTmp = Mid(sEncodedURL, iLoop + 1, 2) sTmp = Chr(CDec("&H" & sTmp)) iLoop = iLoop + 2 End If sRtn = sRtn & sTmp Next iLoop URLDecode = sRtn End If Finally: Exit Function Catch: URLDecode = "" Resume Finally End Function 顺便发布对应编码的函数: Public Function URLEncode(sRawURL As String) As String On Error Goto Catch Dim iLoop As Integer Dim sRtn As String Dim sTmp As String Const sValidChars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:/.?=_-$(){}~&" If Len(sRawURL) > 0 Then For iLoop = 1 To Len(sRawURL) sTmp = Mid(sRawURL, iLoop, 1) If InStr(1, sValidChars, sTmp, vbBinaryCompare) = 0 Then sTmp = Hex(Asc(sTmp)) If sTmp = "20" Then sTmp = "+" ElseIf Len(sTmp) = 1 Then sTmp = "%0" & sTmp Else sTmp = "%" & sTmp End If End If sRtn = sRtn & sTmp Next iLoop URLEncode = sRtn End If Finally: Exit Function Catch: URLEncode = "" Resume Finally End Function
|