URL kodieren / dekodieren
URL-Komponenten und Query-Strings prozent-kodieren oder dekodieren
Über dieses Tool
Zeichen wie Leerzeichen, kaufmännische Und-Zeichen und Nicht-ASCII-Buchstaben dürfen nicht roh in einer URL stehen, also werden sie prozentkodiert: aus einem Leerzeichen wird %20, aus 你 wird %E4%BD%A0. Dieses Tool kodiert Text für die sichere Einbettung in URLs und dekodiert prozent-escapte Strings zurück in lesbaren Text, inklusive der +-Konvention für Leerzeichen in Query-Strings.
Es gibt zwei Kodier-Modi, weil JavaScript selbst zwei hat: Der Komponenten-Modus (encodeURIComponent) escapet alles, was eine URL strukturieren könnte — genau richtig für einen einzelnen Query-String-Wert; der Voll-URI-Modus (encodeURI) erhält Strukturzeichen wie /, ? und &, wenn du eine komplette URL kodierst, die navigierbar bleiben muss.
Beim Dekodieren wird bei fehlerhaften %-Sequenzen streng geprüft — ein einzelnes % oder %ZZ wird als Fehler gemeldet statt stillschweigend durchgereicht, exakt so, wie Browser und Server damit umgehen.
Häufige Fragen
- Wann nehme ich den Komponenten-Modus und wann den Voll-URI-Modus?
- Beim Kodieren eines Werts, der in eine URL eingebettet wird (eine Suchanfrage, ein Redirect-Ziel, eine E-Mail-Adresse in einem Parameter) → Komponenten-Modus, damit & und = im Wert den Query-String nicht zerlegen. Beim Kodieren einer kompletten URL für Anzeige oder Transport → Voll-URI-Modus, damit die URL-Struktur erhalten bleibt.
- Warum bedeutet + manchmal ein Leerzeichen?
- Das Format application/x-www-form-urlencoded — genutzt von HTML-Formular-Submits und Query-Strings — kodiert Leerzeichen historisch als +. In URL-Pfaden ist + einfach ein Plus. Der Decoder hier behandelt + als Leerzeichen, passend zur Query-String-Semantik; %20 funktioniert immer und überall.
- Warum ist mein String doppelt kodiert (%2520)?
- %25 ist die Kodierung von % selbst, %2520 bedeutet also, dass der Text %20 ein zweites Mal kodiert wurde. Das passiert, wenn zwei Schichten eines Systems jeweils kodieren. Dekodiere hier zweimal, um es auszupacken, und repariere dann die Schicht, die nicht kodieren sollte.
- Werden Unicode-Zeichen korrekt behandelt?
- Ja — Text wird zuerst als UTF-8 kodiert und jedes Byte prozent-escapet, gemäß dem WHATWG-URL-Standard. Deshalb wird aus einem CJK-Zeichen drei %XX-Gruppen.