Sprache: Deutsch

tools / url

url/

URL kodieren / dekodieren sowie eine vollständige URL in ihre Bestandteile und eine Tabelle der Query-Parameter zerlegen.

Eingabe

Kodiert

URL analysieren

Häufige Fragen

Was ist der Unterschied zwischen encodeURIComponent und encodeURI, und welches nehme ich?

Nimm encodeURIComponent für einen Parameterwert oder ein einzelnes Pfadsegment und encodeURI für eine ganze URL. Ersteres wandelt auch Zeichen mit besonderer Bedeutung wie : / ? & = # in %XX um und eignet sich daher nur für einen einzelnen Teil einer URL; Letzteres lässt sie unverändert, die URL-Struktur bleibt also intakt, ein & oder = innerhalb eines Parameterwerts wird dafür aber nicht behandelt. Buchstaben, Ziffern und - _ . ! ~ * ' ( ) kodiert keines von beiden.

Warum wird ein Leerzeichen zu %20, und wird + beim Dekodieren zu einem Leerzeichen?

Die Kodierung schreibt ein Leerzeichen hier als %20, nicht als +. Beim Dekodieren bleibt ein + im Feld unverändert und wird nicht zum Leerzeichen, denn decodeURIComponent führt diese Umwandlung nicht durch; nur die Tabelle der Query-Parameter unter „URL analysieren“ behandelt + nach den Formularregeln als Leerzeichen. Um etwas wie a+b aus einem Formular-Submit zu dekodieren, ersetze das + zuerst von Hand durch ein Leerzeichen.

Was tun bei „ist keine gültige UTF-8-Sequenz“ beim Dekodieren?

Die %XX-Folge ist nicht UTF-8. Am häufigsten ist es chinesischer Text, den eine ältere Website als GBK kodiert hat, etwa %D6%D0; wie decodeURIComponent im Browser akzeptiert dieses Tool nur UTF-8, meldet daher einen Fehler und zeigt die Fehlerstelle an. GBK-Inhalte lassen sich mit einem Tool umwandeln, das GBK unterstützt, zum Beispiel mit unquote(s, encoding='gbk') in Python. Derselbe Fehler erscheint, wenn der Text beim Kopieren abgeschnitten wurde, etwa bei %E4%B8, dem das letzte Byte fehlt.

Was tun bei „Auf das % an Zeichen N folgen keine zwei Hexadezimalziffern“?

Im Text steht ein Prozentzeichen, das nie kodiert wurde, etwa bei 100% oder 50%off. Das Prozentzeichen leitet bei der URL-Kodierung eine Escape-Sequenz ein und muss von zwei Hexadezimalziffern gefolgt werden. Ändere dieses % in %25 und dekodiere erneut; die Meldung nennt, um das wievielte Zeichen es sich handelt.

Was tun, wenn nach dem Dekodieren immer noch %XX im Ergebnis steht?

Meist wurde doppelt kodiert, zum Beispiel wird %2520 beim ersten Dekodieren zu %20. Dekodiere einfach noch einmal: Klicke auf „⇄ Ergebnis als Eingabe verwenden“, um das Ergebnis zurück ins Eingabefeld zu legen, und klicke dann erneut auf „Dekodieren“.

Entspricht das Ergebnis der URL-Kodierung in PHP, Python oder Java?

Weitgehend, im Detail gibt es Unterschiede. encodeURIComponent entspricht ungefähr rawurlencode in PHP und urllib.parse.quote(s, safe='') in Python, kodiert aber ! ' ( ) * nicht. URLEncoder in Java und urlencode in PHP schreiben ein Leerzeichen als +, dieses Tool schreibt %20. Bei der Anbindung an ein anderes System gelten die Dekodierungsregeln, die der Empfänger tatsächlich verwendet.

Warum meldet „URL analysieren“, dass das Protokoll fehlt, oder zeigt etwas anderes als das, was ich eingegeben habe?

Zum Analysieren braucht es eine vollständige URL, die mit einem Protokoll wie https:// beginnt; eine bloße Domain oder ein bloßer Pfad führt zu einem Fehler. Das Ergebnis stammt vom URL-Parser des Browsers und wird deshalb normalisiert: Der Host wird in Kleinbuchstaben umgewandelt, der Port zeigt „(Standardport)“, wenn er fehlt oder der Standardport ist, Nicht-ASCII-Zeichen im Pfad erscheinen als %XX, mit einer zusätzlichen Zeile für den dekodierten Pfad, und Schlüssel und Werte in der Query-Tabelle sind bereits dekodiert.

Wird die eingegebene URL an einen Server gesendet?

Nein. Kodieren, Dekodieren und Analysieren laufen im Browser, daher verlassen auch Parameter wie Tokens oder Telefonnummern in der URL deinen Browser nie.