URL dekodieren
Aus %E2%9C%93 wird wieder ✓. Doppelt kodierte Strings, Formularkodierung und halb kaputte Eingaben werden verarbeitet statt abgelehnt. Es wird nichts gespeichert.
- Nie gespeichert
- Keine Warteschlange, kein Warten
- Ohne Anmeldung, ohne Wasserzeichen
Dekodiert erscheint hier.
So funktioniert’s
Kodierten Text einfügen
Eine ganze URL, einen Query-String oder nur einen einzelnen Wert.
Bei Bedarf die Variante wählen
Standard-Dekodierung oder Formular-Dekodierung, bei der + ein Leerzeichen bedeutet. Wenn Sie unsicher sind, zeigt Ihnen die Seite, wann sich beide unterscheiden.
Ergebnis kopieren
Dekodieren Sie erneut, wenn der Text doppelt kodiert war – das kommt häufig vor und ist leicht zu erkennen, sobald man es einmal gesehen hat.
Die Mehrdeutigkeit, die Ihnen niemand abnehmen kann
Dekodieren ist technisch einfach – jedes % mit zwei folgenden Hex-Ziffern suchen, wieder in ein Byte verwandeln und die Bytes dann als UTF-8 lesen –, und es gibt genau eine echte Mehrdeutigkeit. Ein Pluszeichen kann ein Leerzeichen bedeuten oder ein Plus. In einem abgesendeten Formular bedeutet es ein Leerzeichen, nach einer Konvention, die älter ist als die URL-Spezifikation des Webs selbst. In einem Pfadsegment ist es ein wörtliches Zeichen. Nichts im Text selbst verrät, was gilt, also zeigt Ihnen die Seite beide Lesarten, statt eine zu wählen und unbemerkt falschzuliegen – was vor allem dort zählt, wo es am meisten schadet: bei einer E-Mail-Adresse oder einem Base64-Wert, in dem ein Plus echte Daten ist.
Nicht-ASCII-Text kommt als mehrere Prozentsequenzen pro Zeichen an, weil die Kodierung mit UTF-8-Bytes arbeitet und nicht mit Zeichen: ein Buchstabe mit Akzent oder Umlaut sind zwei, die meisten Symbole drei, ein Emoji vier. Wer eine Sequenz dekodiert, die kein gültiges UTF-8 ist, erhält Ersatzzeichen – meist ein Zeichen dafür, dass der Text aus einem anderen Zeichensatz kodiert wurde oder mitten in einem Zeichen abgeschnitten ist.
Doppeltes Dekodieren ist eine Sicherheitslücke, nicht nur ein Versehen. Wird ein Wert dekodiert, geprüft und dann erneut dekodiert, kann ein Angreifer Zeichen vor der Prüfung verstecken: %252e%252e%252f kommt an einem Filter vorbei, der nach „../“ sucht, weil es nach einem Durchgang noch %2e%2e%2f ist – und nach dem zweiten genau der Verzeichniswechsel, den der Filter verhindern sollte. Dekodieren Sie genau einmal, validieren Sie danach, und nie in umgekehrter Reihenfolge.
Text, der nie kodiert war, kommt unverändert zurück statt verstümmelt – das nützliche Verhalten, wenn Sie gar nicht sicher sind, ob ein String dekodiert werden muss. Ein Prozentzeichen ohne zwei folgende Hex-Ziffern bleibt stehen, statt als Fehler behandelt zu werden – das ist ein wörtliches Prozent, häufig in Text, der eingefügt statt kodiert wurde.
Wenn Sie etwas anderes brauchen
Im Code sollte der Decoder zum Encoder passen. JavaScript hat decodeURIComponent; Python trennt unquote von unquote_plus, genau wegen der Pluszeichen-Frage; PHP hat aus demselben Grund rawurldecode und urldecode. Noch besser: Überlassen Sie das einem URL-Typ oder einem Query-String-Parser – die meisten Frameworks dekodieren Parameter für Sie, und ein erneutes Dekodieren danach ist genau der Weg, auf dem der oben beschriebene Doppel-Dekodierungsfehler entsteht.
Um eine lange URL zu untersuchen, statt einen Wert zu dekodieren, ist ein Parser besser als ein Decoder: python -c "import urllib.parse,sys; print(urllib.parse.urlparse(sys.argv[1]))" zerlegt eine Adresse in ihre Bestandteile, sodass Sie vor dem Dekodieren sehen, welches Stück welches ist – und das ist meist die eigentliche Frage, wenn ein Link nicht funktioniert.
Häufig gestellte Fragen
Nach dem Dekodieren steht immer noch %25 in meinem Text
Dann wurde er doppelt kodiert, und das ist extrem häufig – es passiert immer dann, wenn ein bereits kodierter Wert auf dem Weg durch eine Weiterleitung oder eine Logging-Schicht erneut kodiert wird. %25 ist die Kodierung des %-Zeichens selbst, also macht das erste Dekodieren aus %2520 ein %20 und das zweite daraus ein Leerzeichen. Dekodieren Sie einfach noch einmal. Die Seite weist Sie darauf hin, wenn sie das Muster erkennt.
Soll aus „+“ ein Leerzeichen werden?
Das hängt davon ab, woher der String stammt – deshalb ist es eine Wahl und kein Raten. In einem application/x-www-form-urlencoded-Body – einem abgesendeten HTML-Formular – bedeutet + ein Leerzeichen. In einem Pfadsegment oder in Daten, die lediglich durch eine URL gereist sind, ist + ein wörtliches Pluszeichen, und wer es in ein Leerzeichen verwandelt, beschädigt den Wert. Base64-Strings sind der Fall, der wehtut: Sie enthalten echte +-Zeichen, und Formular-Dekodierung zerstört sie.
Was passiert mit einem kaputten String?
Es wird dekodiert, was sich dekodieren lässt, und der Rest bleibt unangetastet, statt alles abzulehnen. Ein verirrtes %, das nicht zu einer gültigen Escape-Sequenz gehört – häufig, wenn Text bereits teilweise dekodiert oder abgeschnitten wurde –, bringt den browsereigenen Decoder dazu, einen Fehler zu werfen und gar nichts zurückzugeben. Hier wird jede gültige Escape-Sequenz dekodiert und die verirrten Zeichen bleiben, wie sie sind – weitaus nützlicher, wenn Sie eine kaputte Log-Zeile lesen wollen.
Wird mein Text irgendwo gespeichert?
Nein. Es wird nichts gespeichert und keine Anfrage gestellt. Sie können nach dem Laden der Seite die Internetverbindung trennen, und sie funktioniert weiter.
Kann ich eine ganze URL auf einmal dekodieren?
Ja. Fügen Sie sie vollständig ein – die Struktur bleibt lesbar, und nur die kodierten Teile werden wieder in Text verwandelt. So wird eine lange URL mit mehreren kodierten Parametern zu etwas, das Sie tatsächlich lesen können.
Gut zu wissen: Ein Pluszeichen ist mehrdeutig: In einem Query-String bedeutet es ein Leerzeichen, in einem Pfad ein wörtliches Plus. Die Seite dekodiert auf beide Arten und zeigt Ihnen, was was ist, statt zu raten. Text, der nie prozentkodiert war, kommt unverändert zurück statt verstümmelt.
Dieses Tool auf Ihrer Website einbinden
Kostenlos für jeden Blog, jede Kursseite und jeden Hilfeartikel. Fügen Sie ein einziges Snippet ein, und Ihre Besucher können das Tool direkt auf Ihrer Seite nutzen.
Weitere Entwickler-Tools
URL kodieren
Text sicher in eine URL einsetzen
Base64 dekodieren
Base64 wieder in Text oder eine Datei umwandeln
JSON formatieren
Unlesbares JSON lesbar machen
JWT-Decoder
Sehen, was in einem Token steckt – privat
QR-Code-Generator
Ein QR-Code, der Ihnen gehört
Barcode-Generator
EAN, UPC, Code 128 – mit geprüften Ziffern