Was ist URL Encoding?
URL Encoding (auch Percent-Encoding genannt) ist ein Verfahren, um Zeichen in URLs sicher zu übertragen. Da URLs nur bestimmte ASCII-Zeichen enthalten dürfen, müssen Sonderzeichen, Umlaute und andere Zeichen in ein spezielles Format umgewandelt werden.
Warum ist URL Encoding notwendig?
URLs haben eine feste Struktur mit reservierten Zeichen wie ?, &, = und /. Wenn diese Zeichen in Parametern oder Pfaden vorkommen, würden sie die URL-Struktur zerstören. URL Encoding ersetzt solche Zeichen durch %XX-Sequenzen, wobei XX der hexadezimale Wert des Zeichens ist.
Reservierte und unsichere Zeichen
Bestimmte Zeichen haben in URLs eine besondere Bedeutung und müssen kodiert werden, wenn sie als Daten verwendet werden:
- Reservierte Zeichen: ! # $ & ' ( ) * + , / : ; = ? @ [ ]
- Unsichere Zeichen: Leerzeichen, < > " % | \ ^ ` und alle Nicht-ASCII-Zeichen
- Sichere Zeichen: A-Z, a-z, 0-9, - _ . ~
UTF-8 und URL Encoding
Nicht-ASCII-Zeichen wie deutsche Umlaute (ä, ö, ü, ß) werden zuerst in UTF-8-Bytes umgewandelt und dann jedes Byte einzeln kodiert. Das ä wird beispielsweise zu %C3%A4 (zwei Bytes: 0xC3 und 0xA4).
Anwendungsbereiche
- Query-Parameter: Werte in URL-Parametern (?name=wert)
- Form-Daten: HTML-Formulare mit GET-Methode
- API-Aufrufe: REST-APIs mit URL-Parametern
- Dateinamen: Dateien mit Sonderzeichen in URLs
- Weiterleitungen: URLs als Parameter in Redirect-URLs
Häufig gestellte Fragen
Was ist der Unterschied zwischen encodeURI und encodeURIComponent?
encodeURI kodiert eine vollständige URL und lässt Zeichen wie : / ? & = unverändert, da sie Teil der URL-Struktur sind. encodeURIComponent (was unser Tool verwendet) kodiert alle Sonderzeichen und ist für URL-Parameter gedacht.
Warum wird das Leerzeichen manchmal als + und manchmal als %20 dargestellt?
%20 ist die Standard-URL-Kodierung für Leerzeichen. Das + ist eine Sonderkodierung, die nur in application/x-www-form-urlencoded-Daten (HTML-Formulare) verwendet wird. Unser Tool verwendet %20 für maximale Kompatibilität.
Werden meine Daten an einen Server gesendet?
Nein! Die gesamte Verarbeitung erfolgt lokal in Ihrem Browser. Keine Daten werden an unsere oder andere Server übertragen.
Was passiert bei doppelter Kodierung?
Doppelte Kodierung tritt auf, wenn bereits kodierter Text erneut kodiert wird. Aus %20 wird dann %2520. Dies kann zu Problemen führen und sollte vermieden werden. Dekodieren Sie Daten nur einmal.