Was dieses Tool macht
Der Text wird zu UTF-8-Bytes, und jedes Byte außerhalb der unreservierten Menge wird als Prozentzeichen mit zwei Hexziffern geschrieben. Unangetastet bleiben Buchstaben, Ziffern und - . _ ~.
Alles andere wird maskiert, auch die Zeichen, die eine URL gliedern:
a b → a%20b
a+b&c=d → a%2Bb%26c%3Dd
café → caf%C3%A9
😀 → %F0%9F%98%80
Prozentkodierung, nicht Formular-Kodierung
Das ist die Unterscheidung, die man mitnehmen sollte, denn sie beschädigt Daten stillschweigend in beide Richtungen.
Prozentkodierung nutzen ein URL-Pfad und ein moderner Querystring. Ein Leerzeichen heißt dort %20. Ein Pluszeichen ist ein echtes Plus und wird selbst zu %2B maskiert, wenn es in einem Wert vorkommt.
Formular-Kodierung — application/x-www-form-urlencoded, was ein HTML-Formular absendet — schreibt das Leerzeichen stattdessen als +. Das ist die ältere Konvention, und sie ist noch überall.
Dieses Tool wendet die erste Regel an, so wie encodeURIComponent und decodeURIComponent im Browser.
Die Folge beim Dekodieren
Eine Zeichenkette aus einem Formular, oder aus einem im Formularstil geschriebenen Querystring, behält hier ihre Pluszeichen, statt sie wieder zu Leerzeichen zu machen. a+b dekodiert zu a+b.
Für die Prozentkodierung ist das richtig und gegenüber dem, was Sie vermutlich wollten, falsch. Kam die Eingabe aus einem Formular, ersetzen Sie + vor dem Dekodieren durch %20 oder nehmen Sie einen Formular-Dekoder.
Ein einzelnes Prozentzeichen ohne zwei folgende Hexziffern ist ein Fehler und keine Vermutung: 100% lässt sich nicht dekodieren, und etwas anderes zu behaupten würde ein Byte erfinden.
Es kodiert einen Wert, keine URL
Geben Sie ihm eine ganze URL, maskiert es auch das :// und die Trennzeichen, was nicht der Zweck ist. Kodieren Sie jeden Wert einzeln und bauen Sie die URL darum herum.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.