Suchanfrage kodieren
hello world & more
hello%20world%20%26%20more
Aus Leerzeichen wird %20, und das & wird zu %26, damit es nicht als Trenner zwischen Query-Parametern fehlinterpretiert wird.
URL-Komponenten sicher kodieren und dekodieren.
Zuletzt aktualisiert
Ein URL-Encoder (auch Prozent-Encoder oder URI-Encoder genannt) ersetzt Zeichen, die in URLs reserviert oder unsicher sind, durch ein % gefolgt von zwei Hex-Ziffern. Praktisch wird das beim Bauen von Query-Strings, beim Escapen von Pfadsegmenten, beim Teilen von URLs mit Leerzeichen oder Nicht-ASCII-Zeichen sowie beim Debuggen von Redirects.
URLs dürfen nur einen kleinen Satz an ASCII-Zeichen enthalten. Alles, was darüber hinausgeht – Leerzeichen, Umlaute, Emojis oder reservierte Symbole wie ?, #, &, =, wenn sie als Daten verwendet werden – muss prozent-kodiert werden, damit es den Weg vom Browser zum Server unbeschadet übersteht.
JavaScript bietet zwei Funktionen dafür: encodeURI (behält die URL-Struktur bei: /, ?, #, &) und encodeURIComponent (kodiert alles Reservierte). Für *Werte*, die du in Query-Strings packst, nimmst du encodeURIComponent; für *ganze URLs*, die weiterhin funktionieren sollen, encodeURI.
% plus zwei Hex-Ziffern – ein Leerzeichen wird zum Beispiel zu %20.: / ? # & = +) haben in der URL-Struktur eine feste Bedeutung. Werden sie als Daten und nicht als Trennzeichen verwendet, müssen sie kodiert werden.Wähle „Encode“, wenn du Rohtext hast und ihn URL-tauglich machen willst. Wähle „Decode“, wenn du einen %-kodierten String hast und den Originaltext zurückbekommen möchtest.
Für Werte im Query-String nimmst du encodeURIComponent (kodiert alles Reservierte); für ganze URLs encodeURI (Struktur bleibt erhalten).
Füge den Rohtext oder die kodierte URL ein. Mehrzeilige Eingaben funktionieren ebenfalls – praktisch für Batch-Dekodierung.
Kopiere den kodierten oder dekodierten Wert. Die Umwandlung läuft lokal in deinem Browser, also bleiben Geheimnisse aus URLs auch auf deinem Rechner.
Die Zeichen, die dir am häufigsten in kodierter Form begegnen, mit ihrer Prozent-Schreibweise. Die Bedeutung der reservierten Zeichen stammt aus RFC 3986.
| Zeichen | Kodiert | Warum |
|---|---|---|
| Leerzeichen | %20 | Leerzeichen sind in URLs nicht erlaubt |
! | %21 | Wird von manchen Servern reserviert |
# | %23 | Leitet das Fragment ein |
$ | %24 | Reserviertes Zeichen |
& | %26 | Trennt Query-Parameter |
+ | %2B | Steht in form-kodierten Bodies für ein Leerzeichen |
/ | %2F | Pfad-Trennzeichen |
: | %3A | Trennt Schema und Host |
= | %3D | Trennt Key und Value im Query-String |
? | %3F | Leitet den Query-String ein |
@ | %40 | Trennt Userinfo und Host |
| UTF-8-Byte | %C3%A9 | Jedes Nicht-ASCII-Byte wird einzeln kodiert |
hello world & more
hello%20world%20%26%20more
Aus Leerzeichen wird %20, und das & wird zu %26, damit es nicht als Trenner zwischen Query-Parametern fehlinterpretiert wird.
café
caf%C3%A9
é entspricht der UTF-8-Bytefolge 0xC3 0xA9, deshalb stehen für dieses *eine* Zeichen *zwei* %XX-Gruppen in der kodierten Variante.
https://example.com/path?q=hello world
https://example.com/path?q=hello%20world
https%3A%2F%2Fexample.com%2Fpath%3Fq%3Dhello%20world
encodeURI lässt die URL-Struktur in Ruhe (Slashes, ?, =). encodeURIComponent kodiert alles Reservierte – nimm es für Werte, die du *in* einen Query-String steckst, niemals für eine komplette URL.
encodeURI für Query-String-Werte verwenden – & und = überleben die Kodierung und zerschießen das Parameter-Parsing.%2520 statt %20 siehst, ist das das klassische Zeichen für Double-Encoding-Bugs.+ in application/x-www-form-urlencoded-Bodies ein Leerzeichen bedeutet, im URL-Pfad oder Query aber ein wörtliches + ist.% plus zwei Hex-Ziffern darzustellen.encodeURI lässt die strukturellen Zeichen einer URL (/, ?, #, &, =, +) unangetastet. encodeURIComponent kodiert sie alle – genau das willst du für einzelne *Werte* innerhalb einer URL: Query-Parameter-Werte, Pfadsegmente, Fragmente. Siehe die MDN-Doku zu encodeURI und encodeURIComponent.%20?%20 ersetzt – die Prozent-Kodierung des ASCII-Leerzeichens (hex 0x20).decodeURI, decodeURIComponent oder ein beliebiger URL-Decoder kehrt die Prozent-Kodierung zurück zu den Originalzeichen um.