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,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