In diesem Artikel
Was ist URL-Kodierung?
Die URL-Kodierung (auch Prozentkodierung genannt) wandelt Zeichen, die in URLs unsicher oder reserviert sind, in ein sicheres Format um. Jedes unsichere Zeichen wird durch ein %-Zeichen ersetzt, gefolgt von seinem zweistelligen hexadezimalen ASCII-Code. Ein Leerzeichen wird beispielsweise zu %20 und ein Und-Zeichen zu %26.
URLs dürfen nur einen begrenzten Satz von ASCII-Zeichen enthalten. Zeichen außerhalb dieses Satzes — darunter Leerzeichen, Nicht-ASCII-Buchstaben und Sonderzeichen — müssen prozentkodiert werden, um sicher in einer URL übertragen werden zu können.
So funktioniert die URL-Kodierung
Der Encoder identifiziert Zeichen, die in URLs nicht sicher sind, und ersetzt sie durch ihre prozentkodierten Entsprechungen.
- Erkennung sicherer Zeichen — Buchstaben, Ziffern sowie - _ . ~ bleiben unverändert
- Behandlung reservierter Zeichen — ! * ' ( ) ; : @ & = + $ , / ? # [ ] werden in den meisten Kontexten kodiert
- Unicode-Unterstützung — Nicht-ASCII-Zeichen werden zunächst in UTF-8 kodiert, anschließend wird jedes Byte prozentkodiert
Kostenlos testen – keine Registrierung erforderlich
URL kodieren oder dekodieren →Wann Sie URL-Kodierung einsetzen sollten
URL-Kodierung ist immer dann erforderlich, wenn Sonderzeichen in URL-Bestandteilen auftauchen.
- Query-Parameter — kodieren Sie Werte, die als Query-String-Parameter übergeben werden, insbesondere von Nutzern eingegebene Suchbegriffe
- API-Anfragen — kodieren Sie Pfadsegmente und Parameter beim programmatischen Erstellen von API-URLs
- Formulardaten — kodieren Sie Formulardaten, bevor Sie sie bei GET-Anfragen an URLs anhängen
Häufig gestellte Fragen
Was ist der Unterschied zwischen encodeURI und encodeURIComponent in JavaScript?
encodeURI kodiert eine vollständige URL und lässt Zeichen wie /, : und # unangetastet, da diese in URLs eine strukturelle Bedeutung haben. encodeURIComponent kodiert einen einzelnen URL-Bestandteil (etwa einen Query-Parameter-Wert) und prozentkodiert dabei auch diese strukturellen Zeichen. Zum Kodieren einzelner Parameterwerte sollten Sie stets encodeURIComponent verwenden.
Warum wird ein Leerzeichen manchmal als + statt als %20 dargestellt?
Das Format application/x-www-form-urlencoded (bei HTML-Formularübermittlungen verwendet) kodiert Leerzeichen als + statt als %20. Dabei handelt es sich um eine Altkonvention aus frühen Webstandards. In Query-Strings aus HTML-Formularen bedeutet + ein Leerzeichen; in anderen URL-Kontexten wird %20 verwendet. Beide sind gültig, doch der Kontext bestimmt, welches zu nutzen ist.
Muss ich die gesamte URL kodieren oder nur Teile davon?
Kodieren Sie nur einzelne Bestandteile (Pfadsegmente, Query-Parameter-Werte). Würde man die gesamte URL kodieren, würden auch die Zeichen :, / und ? kodiert, die die URL-Struktur definieren — und die URL wäre defekt. Die Regel lautet: Kodieren Sie Werte, nicht die strukturellen Zeichen, die die URL bilden.