URL-Encoder und -Decoder
Wandeln Sie Text per Prozentcodierung für eine URL um oder decodieren Sie ihn wieder. Zur Wahl stehen die drei Verfahren, die sich im Ergebnis unterscheiden; Listen werden Zeile für Zeile verarbeitet.
Dateien hier ablegen
.txt · bis 5 MB
So codieren und decodieren Sie eine URL
- 1
Text oder URL-Liste einfügen
Ein Wert oder fünfzig, einer je Zeile. Eine .txt-Datei geht auch; gelesen werden sowohl UTF-8 als auch Windows-1251.
- 2
Richtung und Verfahren wählen
Codieren oder decodieren, dann das Verfahren: Komponente für einen einzelnen Wert, ganze URI für eine vollständige Adresse, form-urlencoded für den Body einer POST-Anfrage.
- 3
Ergebnis kopieren
Kopieren Sie es direkt oder laden Sie es als Textdatei herunter – die Zeilenstruktur bleibt in beiden Fällen erhalten.
Drei Verfahren – und warum die falsche Wahl Links zerstört
Die Komponenten-Codierung maskiert alle Zeichen außer den nicht reservierten, auch : / ? # & =. Für einen einzelnen Wert in einem Query-String ist das richtig, für eine ganze Adresse falsch: Codieren Sie https://example.com/a?b=1 als Komponente, wird jedes Strukturzeichen zu einer Prozentsequenz, und übrig bleibt eine Zeichenkette, die keine URL mehr ist. Die Codierung als ganze URI lässt diese Strukturzeichen in Ruhe und maskiert nur Leerzeichen und Nicht-ASCII-Zeichen – genau das Richtige, wenn die Eingabe bereits eine vollständige Adresse ist. Form-urlencoded ist die Komponenten-Codierung plus eine Ersetzung: Leerzeichen werden zu Pluszeichen, wie es das Format verlangt, in dem HTML-Formulare ihre Daten senden.
Das Pluszeichen ist mehrdeutig
Im Body im Format form-urlencoded bedeutet + ein Leerzeichen. In einem Pfadsegment bedeutet + ein echtes Pluszeichen. Allein an der Zeichenkette kann die Decodierung beides nicht unterscheiden. Deshalb ist es eine Einstellung und kein Raten: Wählen Sie form-urlencoded oder schalten Sie die Option ein, die + als Leerzeichen behandelt, dann werden Pluszeichen zu Leerzeichen; bleibt sie aus, bleiben sie Pluszeichen. Beim Codieren lauert eine verwandte Falle in der Gegenrichtung: Ein echtes + in der Eingabe muss zu %2B werden, bevor Leerzeichen in Pluszeichen umgewandelt werden. Sonst wird es bei einem Hin- und Rückweg durch den Encoder stillschweigend zu einem Leerzeichen. Diese Reihenfolge ist hier fest eingestellt: Codieren und anschließendes Decodieren liefert immer genau das, womit Sie begonnen haben.
Fehlerhafte Escape-Sequenzen, genau benannt
Ein einzelnes %, auf das keine zwei Hexadezimalziffern folgen, oder eine abgeschnittene Mehrbyte-Sequenz wie %E0%A4 macht eine Zeichenkette nicht decodierbar. Der eingebaute Decoder des Browsers wirft dann eine Ausnahme, ohne zu sagen, wo. Der strenge Modus meldet Zeile und Position des ersten Problems, damit Sie es auch in einer langen Liste finden. Der tolerante Modus behandelt ein einzelnes % als normales Prozentzeichen und gibt den Rest zurück – meist das Richtige, wenn die Eingabe eine Logzeile und keine echte URL ist. Aus demselben Grund zählt die zeilenweise Verarbeitung: Ist in einer Liste von fünfzig ein Eintrag fehlerhaft, erfahren Sie, welcher es war.
Der Text bleibt in diesem Tab
Die Umwandlung nutzt die eingebauten Codierungsfunktionen des Browsers und läuft vollständig lokal. Query-Strings enthalten regelmäßig Tokens und Kennungen, deshalb sei es klar gesagt: Nichts wird hochgeladen, protokolliert oder aufbewahrt.
Häufige Fragen
Was ist der Unterschied zwischen encodeURI und encodeURIComponent?
encodeURIComponent maskiert auch die Strukturzeichen : / ? # & =. Das ist richtig für einen einzelnen Wert in einem Query-String. encodeURI lässt sie unverändert, und das ist richtig, wenn die Eingabe eine vollständige Adresse ist, die nur sicher gemacht werden muss.
Warum bedeutet + manchmal ein Leerzeichen?
Weil das Format form-urlencoded, mit dem HTML-Formulare Daten senden, es so festlegt. An anderen Stellen einer URL ist + ein echtes Pluszeichen. Da die Zeichenkette allein nicht verrät, was gilt, bietet die Decodierung es als ausdrückliche Wahl an.
Was tue ich bei einem Fehler wegen ungültiger Prozentcodierung?
Die Meldung nennt Zeile und Position der ersten fehlerhaften Escape-Sequenz – meist ein einzelnes %, das %25 hätte sein sollen, oder eine abgeschnittene Mehrbyte-Sequenz. Korrigieren Sie die Stelle oder wechseln Sie zur toleranten Decodierung, um den restlichen Text zurückzubekommen.
Funktioniert das mit einer Liste von URLs?
Ja, das ist sogar die Standardeinstellung. Jede Zeile wird unabhängig umgewandelt, leere Zeilen bleiben leer, und Zeilenumbrüche werden nie maskiert: Eine Liste geht hinein, eine Liste kommt heraus.
Bleiben Zeilenumbrüche erhalten?
Im zeilenweisen Modus ja, einschließlich eines Zeilenumbruchs am Ende. Schalten Sie den zeilenweisen Modus aus, wird die gesamte Eingabe als ein Wert behandelt, und ihre eigenen Zeilenumbrüche werden im Ergebnis zu %0A.
Wie decodiere ich kyrillische Zeichen in einer Adresse?
Fügen Sie die Adresse ein und decodieren Sie mit dem Komponenten-Verfahren. Prozentcodiertes UTF-8 wie %D0%BF%D1%80%D0%B8 wird wieder zu den ursprünglichen Buchstaben; der Hin- und Rückweg ist in beiden Richtungen verlustfrei.
Wird mein Text irgendwohin gesendet?
Nein. Codieren und Decodieren nutzen beide Funktionen, die in Ihren Browser eingebaut sind, laufen lokal in diesem Tab und kommen ohne Server und ohne Speicherung aus.