URL-Kodierung
URL kodieren & dekodieren
Eingabe
Ergebnis
Was ist URL-Kodierung?
URLs dürfen nur Buchstaben, Zahlen und bestimmte Sonderzeichen enthalten. Zeichen wie Leerzeichen, Nicht-ASCII-Zeichen und Sondersymbole müssen in das Format %XX umgewandelt werden. Dies wird Prozent-Kodierung genannt.
encodeURIComponent vs. encodeURI in JavaScript
JavaScript bietet zwei verwandte Funktionen. encodeURIComponent() kodiert Parameterwerte vollstaendig, einschliesslich Schraegstriche und Fragezeichen. encodeURI() ist fuer vollstaendige URLs gedacht und laesst strukturelle Zeichen wie / und ? unveraendert. Die falsche Wahl fuehrt zu doppelter Kodierung oder beschaedigten URL-Strukturen.
Warum URL-Kodierung notwendig ist
URLs folgen RFC 3986 und erlauben nur alphanumerische Zeichen und wenige Sonderzeichen (-._~). Wenn Leerzeichen, nicht-lateinische Zeichen oder Sondersymbole in URLs erscheinen, kann der Server sie moeglicherweise nicht korrekt interpretieren. Zeichen wie & und = dienen als Trennzeichen fuer Query-Parameter und muessen kodiert werden, wenn sie in tatsaechlichen Datenwerten vorkommen. URL-Kodierung ist ein grundlegender Mechanismus fuer zuverlaessige Datenuebertragung im Web.
Haeufig kodierte Zeichen
Leerzeichen werden als %20 oder + kodiert, das kaufmaennische Und (&) wird zu %26, das Gleichheitszeichen (=) zu %3D und das Fragezeichen (?) zu %3F. Nicht-ASCII-Zeichen wie deutsche Umlaute werden in UTF-8 kodiert und erzeugen mehrere %XX-Sequenzen pro Zeichen. Der Schraegstrich (/) ist ein Pfad-Trennzeichen und sollte nur innerhalb von Parameterwerten kodiert werden. Das Verstaendnis dieser Regeln hilft URL-bezogene Fehler zu vermeiden.
Best Practices fuer Entwickler
Kodieren Sie nur Query-Parameterwerte, nicht die gesamte URL-Struktur. In JavaScript verwenden Sie encodeURIComponent() fuer Werte und encodeURI() fuer vollstaendige URLs. In Python verwenden Sie urllib.parse.quote(). Doppelte Kodierung, bei der bereits kodierte Zeichenketten erneut kodiert werden, ist ein haeufiger Fehler. Wenden Sie Kodierung immer auf Parameterwerte in API-Anfragen an, da diese Sonderzeichen enthalten koennen.