Public Function URLEncode(strURL) 

Dim I 
Dim tempStr 
For I = 1 To Len(strURL) 
    If Asc(Mid(strURL, I, 1)) < 0 Then 
       tempStr = "%" & Right(CStr(Hex(Asc(Mid(strURL, I, 1)))), 2) 
       tempStr = "%" & Left(CStr(Hex(Asc(Mid(strURL, I, 1)))), Len(CStr(Hex(Asc(Mid(strURL, I, 1))))) - 2) & tempStr 
       URLEncode = URLEncode & tempStr 
    ElseIf (Asc(Mid(strURL, I, 1)) >= 65 And Asc(Mid(strURL, I, 1)) <= 90) Or (Asc(Mid(strURL, I, 1)) >= 97 And Asc(Mid(strURL, I, 1)) <= 122) Then 
    'A -- Z, a -- z
       URLEncode = URLEncode & Mid(strURL, I, 1) 
    Else 
       URLEncode = URLEncode & "%" & Hex(Asc(Mid(strURL, I, 1))) 
    End If 
Next 

End Function 
 
Public Function URLDecode(strURL) 
Dim I 
 
If InStr(strURL, "%") = 0 Then URLDecode = strURL: Exit Function 
 
For I = 1 To Len(strURL) 
    If Mid(strURL, I, 1) = "%" Then 'from I to I+1
       If eval("&H" & Mid(strURL, I + 1, 2)) > 127 Then 
          URLDecode = URLDecode & Chr(eval("&H" & Mid(strURL, I + 1, 2) & Mid(strURL, I + 4, 2))) 
          I = I + 5 
       Else 
          URLDecode = URLDecode & Chr(eval("&H" & Mid(strURL, I + 1, 2))) 
          I = I + 2 
       End If 
    Else 
       URLDecode = URLDecode & Mid(strURL, I, 1) 
    End If 
Next 
End Function 
