vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: HTML/Internet/Netzwerk · Sonstiges   |   VB-Versionen: VB621.02.01
URLEncode und URLDecode

Konvertieren von Umlauten und Sonderzeichen einer Zeichenkette in ein Prozent-Zeichen und dem zweistelligen, hexadezimalen ASCII-Wert...

Autor:   Matthias ZirngiblBewertung:  Views:  41.090 
www.masterbootrecord.deSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.