Zum Inhalt springen

URL kodieren und dekodieren

URL Encoder & Decoder

Prozent-kodiert und dekodiert URLs und Query-Werte, mit einem Modus für eine Komponente oder die ganze URL.

Prozentkodiert und dekodiert URLs, wobei die vier verschiedenen Regeln, die alle „URL-Kodierung“ heißen, auseinandergehalten werden: `encodeURIComponent`, `encodeURI`, striktes RFC 3986 und die Formularkodierung, bei der ein Leerzeichen zu `+` wird. Die falsche zu wählen ist das, was einen Link erzeugt, der funktioniert, bis jemand ein `&` eintippt.

🔒 Läuft vollständig in Ihrem Browserurlencodedecodepercent
Regeln
Richtung
Geltungsbereich

Ein Query-Wert, ein Pfadsegment, ein Fragment. `encodeURIComponent`: maskiert `/ ? : @ & = + $ , #` und lässt `A-Za-z0-9 - _ . ! ~ * ' ( )` stehen.

Text

Kodiert

Eingabe

0 Zeichen

Ausgabe

0 Zeichen

Maskierte Zeichen

0

So funktioniert es

  1. Wählen Sie zuerst den Geltungsbereich

    Komponente für einen Query-Wert oder ein Pfadsegment – das ist der häufige Fall. Ganze URL nur für eine URL, die Sie schon haben und nur aufräumen wollen; sie lässt `?`, `&` und `/` absichtlich in Ruhe.

  2. Fügen Sie ein und lesen Sie die Ausgabe

    Die Zähler unter den Panels zeigen, wie viele Zeichen maskiert wurden – ein schneller Weg zu bemerken, dass Sie einen Geltungsbereich gewählt haben, der nichts getan hat.

  3. Stellen Sie die Byte-Kodierung ein, wenn Sie eine alte URL dekodieren

    Ein Link von einer deutschen Website von vor zehn Jahren hat Latin-1-Bytes (ISO-8859-1 oder Windows-1252) prozentkodiert, nicht UTF-8, und ihn als UTF-8 zu dekodieren ergibt Zeichensalat, wo ein Umlaut stand. Die Auswahl im Dekodiermodus hat EUC-KR, Shift_JIS, GB18030 und die Latin-1-Familie.

  4. Bearbeiten Sie die Query als Felder, wenn es viele sind

    Der Schalter „Als Query-String bearbeiten“ teilt die URL in Name/Wert-Zeilen auf. Werte werden dekodiert angezeigt und kodiert zurückgeschrieben, sodass eine ganze URL, die in einem `next=`-Parameter steckt, das Bearbeiten übersteht.

Häufige Fragen

Was ist der Unterschied zwischen Komponente und Ganze URL?

Komponente maskiert die Trennzeichen – `/ ? : @ & = +` –, weil ein *Wert*, der sie enthält, die URL sonst auseinanderbrechen würde. Ganze URL lässt sie stehen, weil sie die Struktur sind. Ganze URL auf einen Wert anzuwenden ist der Standardweg, einen Link zu bauen, der versagt, sobald der Wert ein Kaufmanns-Und enthält.

Warum verifiziert meine Signatur nicht?

Wahrscheinlich, weil `encodeURIComponent` die Zeichen `! ' ( ) *` in Ruhe lässt und RFC 3986 nicht. OAuth 1.0, AWS SigV4 und die meisten anderen Signaturverfahren kanonisieren mit der strikten Regel, sodass ein Wert mit einem Apostroph anders gehasht wird. Dafür ist der Geltungsbereich Strikt da.

Was bedeutet der Hinweis „doppelt kodiert“?

Dass ein erneutes Dekodieren des Ergebnisses etwas anderes ergibt – ein `%2520`, wo ein `%20` gemeint war. Meist bedeutet es, dass ein Wert im Client durch einen Encoder ging und in einem Proxy oder Framework noch einmal. Dekodieren Sie zweimal, um das Original zu bekommen, und reparieren Sie dann die Pipeline.

Warum ist ein Leerzeichen mal `+` und mal `%20`?

`+` gehört zu `application/x-www-form-urlencoded` – Formular-POST-Bodys und das, was `URLSearchParams` erzeugt. Überall sonst in einer URL ist ein Leerzeichen `%20`, und ein `+` bedeutet ein wörtliches Pluszeichen. Beides zu mischen macht aus `a+b` ein `a b` oder umgekehrt.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.