URL解码编码函数

    技术2022-05-11  91

    URL解码/编码函数

    解码一个编码后的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    

    最新回复(0)