Rubrik: HTML/Internet/Netzwerk · Sonstiges | VB-Versionen: VB6 | 21.02.01 |
URLEncode und URLDecode Konvertieren von Umlauten und Sonderzeichen einer Zeichenkette in ein Prozent-Zeichen und dem zweistelligen, hexadezimalen ASCII-Wert... | ||
Autor: Matthias Zirngibl | Bewertung: | Views: 41.090 |
www.masterbootrecord.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Der nachfolgende Tipp konvertiert die Umlaute und Sonderzeichen einer Zeichenkette in ein Prozent-Zeichen und dem zweistelligen, hexadezimalen ASCII-Wert, um in einer URL z.B. Umlaute oder Leerzeichen zu erzeugen (URLEncode).
So verschlüsselte Zeichenketten können dann wieder über die Funktion URLDecode entschlüsselt werden.
' Umlaute und Sonderzeichen verschlüsseln ' ' UsePlusRatherThanHexForSpace: ' False: Leerzeichen als %32 verschlüsseln ' True : Leerzeichen als + verschlüsseln 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 & "%" & Hex(Asc(Mid$(StringToEncode, _ CurChr, 1))) End Select CurChr = CurChr + 1 Loop URLEncode = TempAns End Function ' Entschlüsseln von mit URLEncode ' verschlüsselten Zeichenketten 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
Beispiel:
Dim text As String text = "Hans ist größer als Georg" Debug.Print URLEncode(text) ' ==> Hans%20ist%20gr%F6%DFer%20als%20Georg Debug.Print URLEncode(text, True) ' ==> Hans+ist+gr%F6%DFer+als+Georg