So dekodieren Sie eine URL
- Fügen Sie den kodierten Text in Kodierte URL oder Text ein.
- Lassen Sie + als Leerzeichen behandeln für Query-Strings und Formulardaten aktiv, und schalten Sie es für Pfade oder Base64-Werte aus.
- Enthält das Ergebnis noch
%XX-Sequenzen, weist die Statuszeile darauf hin: Aktivieren Sie Wiederholt dekodieren. - Für eine Logdatei oder eine Spalte mit Werten aktivieren Sie Jede Zeile einzeln, damit jede Zeile für sich dekodiert wird.
- Wählen Sie einen Zeichensatz, falls die Quelle nicht UTF-8 war, dann Ausgabe kopieren.
Ist die Eingabe eine ganze URL, zeigt die Tabelle unter den Feldern Schema, Host, dekodierten Pfad, jeden Query-Parameter in einer eigenen Zeile und das Fragment. So lesen Sie eine lange Tracking- oder Redirect-URL am schnellsten.
Beispiele
| Kodiert | Dekodiert | Hinweis |
|---|---|---|
q=base64%20%26%20%22url-safe%22 | q=base64 & "url-safe" | %26 ist &, %22 ist " |
lang=%E6%97%A5%E6%9C%AC%E8%AA%9E | lang=日本語 | drei Bytes pro Zeichen in UTF-8 |
%F0%9F%98%80 | 😀 | Emoji belegen vier Bytes |
q=a+b%2Bc | q=a b+c | mit + als Leerzeichen behandeln |
next=%252Fhome%253Ftab%253D1 | next=/home?tab=1 | doppelt kodiert, zwei Runden |
caf%E9 | café | Windows-1252 oder ISO-8859-1, nicht UTF-8 |
Doppelte Kodierung
Jedes Mal, wenn ein bereits kodierter String erneut kodiert wird, wird jedes % zu %25. So wird aus / erst %2F, dann %252F, dann %25252F. Das passiert, wenn eine Redirect-URL durch mehrere Dienste gereicht wird oder wenn ein Framework einen Wert kodiert, den der Code schon kodiert hatte.
Um einen solchen String zu lesen, dekodieren Sie, bis keine Escapes mehr übrig sind; Wiederholt dekodieren erledigt das und meldet die Anzahl der Runden. Um die Ursache zu beheben, suchen Sie die Schicht, die ein zweites Mal kodiert. Eine legitim verschachtelte URL, etwa ein Parameter next= oder url=, der eine weitere URL enthält, braucht genau eine zusätzliche Schicht und nicht mehr.
E-Mail-Sicherheitsgateways sind eine häufige Quelle solcher Verschachtelungen. Eine Safe-Links-URL von Microsoft Defender sieht so aus: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com%2Freset%3Fid%3D42&data=…; fügen Sie sie ein, und die Parametertabelle zeigt das tatsächliche Ziel, https://example.com/reset?id=42, ohne dass Sie irgendetwas anklicken.
Fehlerhafte Escapes und alte Zeichensätze
Auf ein % müssen genau zwei Hex-Ziffern folgen. 100%, %zz oder eine mitten im Escape abgeschnittene URL ist ein Fehler, und der Decoder meldet Fehlerhafte Escape-Sequenz an Position N. JavaScripts decodeURIComponent wirft in denselben Fällen URIError: URI malformed, während Pythons unquote die Sequenz unverändert lässt.
Die andere Fehlerquelle ist der Zeichensatz. Prozent-Escapes sind Bytes, und %E9 allein ist kein gültiges UTF-8. Python dekodiert es als Ersatzzeichen, JavaScript wirft einen Fehler. Mit Zeichensatz auf Windows-1252 oder ISO-8859-1 wird daraus é. Shift_JIS, GBK, EUC-KR, KOI8-R und weitere alte Zeichensätze stehen in derselben Liste.
URL-Dekodierung im Code
decodeURIComponent("a%20b%26c") // "a b&c"
new URLSearchParams("q=a+b%2Bc").get("q") // "a b+c"
from urllib.parse import unquote, unquote_plus, parse_qs
unquote("caf%C3%A9") # 'café'
unquote("caf%E9", encoding="latin-1") # 'café'
unquote_plus("q=a+b%2Bc") # 'q=a b+c'
parse_qs("q=a+b%2Bc&tag=x&tag=y") # {'q': ['a b+c'], 'tag': ['x', 'y']}
decodeURIComponent macht aus + kein Leerzeichen; URLSearchParams und unquote_plus schon. Wählen Sie die Variante, die dazu passt, wie der String erzeugt wurde. Zum Kodieren siehe den URL-Encoder, und für Base64, das über eine URL ankam, den Base64URL-Decoder.
Häufige Fragen
Wie dekodiere ich einen URL-kodierten String?
Fügen Sie ihn oben ein; der dekodierte Text erscheint beim Tippen. In JavaScript verwenden Sie decodeURIComponent(s), in Python urllib.parse.unquote(s) oder unquote_plus(s), wenn + für ein Leerzeichen steht.
Warum enthält meine dekodierte URL immer noch %20 oder %3A?
Sie wurde doppelt kodiert. Eine Runde macht aus %2520 ein %20; erst die zweite Runde ergibt das Leerzeichen. Aktivieren Sie Wiederholt dekodieren, dann dekodiert das Tool weiter, bis keine Escapes mehr übrig sind, höchstens fünf Runden, und nennt die Anzahl der Runden.
Warum wirft decodeURIComponent „URI malformed“?
Entweder folgen auf ein % keine zwei Hex-Ziffern, wie in 100%, oder die Bytes sind kein gültiges UTF-8, wie bei %E9 aus einem Windows-1252-System. Dieser Decoder zeigt die genaue Position, und die Option Zeichensatz dekodiert alte Kodierungen.
Sollte + als Leerzeichen dekodiert werden?
In Query-Strings und Formular-Bodys ja, deshalb ist + als Leerzeichen behandeln standardmäßig aktiv. In URL-Pfaden und in Werten, die Base64 enthalten können, deaktivieren Sie die Option, denn dort ist + ein echtes Plus.