Public Function URLEncode(StringToEncode As String, Optional _ UsePlusRatherThanHexForSpace As Boolean = False) As String Dim TempAns As String Dim CurChr As Integer CurChr = 1 Do Until CurChr - 1 = Len(StringToEncode) Select Case Asc(Mid(StringToEncode, CurChr, 1)) Case 48 To 57, 65 To 90, 97 To 122 TempAns = TempAns & Mid(StringToEncode, CurChr, 1) Case 32 If UsePlusRatherThanHexForSpace = True Then TempAns = TempAns & "+" Else TempAns = TempAns & "%" & Hex(32) End If Case Else TempAns = TempAns & "%" & _ Format(Hex(Asc(Mid(StringToEncode, _ CurChr, 1))), "00") End Select CurChr = CurChr + 1 Loop URLEncode = TempAns End Function Public Function URLDecode(StringToDecode As String) As String Dim TempAns As String Dim CurChr As Integer CurChr = 1 Do Until CurChr - 1 = Len(StringToDecode) Select Case Mid(StringToDecode, CurChr, 1) Case "+" TempAns = TempAns & " " Case "%" TempAns = TempAns & Chr(Val("&h" & _ Mid(StringToDecode, CurChr + 1, 2))) CurChr = CurChr + 2 Case Else TempAns = TempAns & Mid(StringToDecode, CurChr, 1) End Select CurChr = CurChr + 1 Loop URLDecode = TempAns End Function ' URLDecode function in Perl for reference ' both VB and Perl versions must return same ' ' sub urldecode{ ' local($val)=@_; ' $val=~s/\+/ /g; ' $val=~s/%([0-9A-H]{2})/pack('C',hex($1))/ge; ' return $val; ' }
Welcome to FreeSoftwareServers Confluence Wiki
Overview
Content Tools