UltKit

URL kodieren & dekodieren

Machen Sie Text URL-tauglich oder verwandeln Sie Sequenzen wie %20 zurück in lesbare Zeichen. Das Tool nutzt die browsereigenen Funktionen encodeURIComponent, encodeURI und decodeURIComponent, listet Query-Parameter in einer Tabelle auf und sendet nichts an einen Server.

Modus

0 Zeichen · 0 Wörter · 0 Zeilen

0 Zeichen · 0 Wörter · 0 Zeilen

Läuft komplett in diesem Browser-Tab. Ihr Text wird weder hochgeladen noch gespeichert.

Was jede Funktion maskiert

Mit den Browser-Funktionen selbst berechnet. encodeURIComponent lässt Buchstaben, Ziffern und diese Zeichen unverändert: ! ' ( ) * - . _ ~

ZeichenencodeURIComponentencodeURI
(Leerzeichen)%20%20
!!!
"%22%22
#%23#
$%24$
%%25%25
&%26&
'''
(((
)))
***
+%2B+
,%2C,
/%2F/
:%3A:
;%3B;
=%3D=
?%3F?
@%40@
[%5B%5B
]%5D%5D
{%7B%7B
}%7D%7D
|%7C%7C
\%5C%5C
^%5E%5E
`%60%60
<%3C%3C
>%3E%3E
~~~
---
___
...
é%C3%A9%C3%A9
€%E2%82%AC%E2%82%AC
😀%F0%9F%98%80%F0%9F%98%80

Prozentkodierung und die reservierten Zeichen nach RFC 3986

Eine URL darf nur eine begrenzte Auswahl an ASCII-Zeichen enthalten. RFC 3986, die Spezifikation für die URI-Syntax von 2005, teilt sie in zwei Gruppen ein. Die nicht reservierten Zeichen, A–Z, a–z, 0–9 und die vier Zeichen - . _ ~, müssen nie kodiert werden. Die reservierten Zeichen haben eine Aufgabe: Die allgemeinen Trennzeichen : / ? # [ ] @ trennen Schema, Host, Pfad, Query und Fragment, und die Unter-Trennzeichen ! $ & ' ( ) * + , ; = trennen Elemente innerhalb davon, so wie & und = in einem Query-String. Alles andere sowie jedes reservierte Zeichen, das als normaler Inhalt dient, muss prozentkodiert werden.

Die Prozentkodierung schreibt ein Byte als % gefolgt von zwei Hexadezimalziffern. Text wird zuerst in UTF-8 umgewandelt: Ein Leerzeichen wird zu %20, ein é (zwei Bytes) zu %C3%A9 und ein Emoji zu vier %XX-Gruppen. Deshalb landet die Suche nach „café & bar“ als caf%C3%A9%20%26%20bar in einem Link: Das & wird kodiert, damit der Server es nicht als Beginn eines neuen Parameters liest.

encodeURIComponent, encodeURI und Dekodierung

encodeURIComponent ist die richtige Wahl für ein einzelnes Teilstück, etwa einen Query-Wert, ein Pfadsegment oder eine als Parameter übergebene Weiterleitungs-URL. Es maskiert alles außer den nicht reservierten Zeichen und ! ' ( ) *, die JavaScript aus historischen Gründen unverändert lässt. encodeURI (ganze URL) geht davon aus, dass die Eingabe bereits eine vollständige Adresse ist, und lässt die reservierten Zeichen unangetastet, sodass bei https://example.com/a b?q=1 nur das Leerzeichen kodiert wird. encodeURI auf einen Parameterwert anzuwenden ist ein klassischer Fehler: Ein & oder # im Wert bliebe erhalten und würde die URL zerstören.

Dekodieren kehrt beide Funktionen um. HTML-Formulare, die per GET gesendet werden, nutzen das ältere Format application/x-www-form-urlencoded, in dem ein Leerzeichen als + statt als %20 geschrieben wird. Lassen Sie dafür Treat + as a space angehakt und entfernen Sie den Haken, wenn ein echtes Pluszeichen wichtig ist, etwa in einer Telefonnummer. Enthält die Eingabe ein % ohne zwei folgende Hexadezimalziffern oder Bytes, die kein gültiges UTF-8 sind, schlägt das Dekodieren mit einer klaren Meldung fehl, statt zu raten. Enthält der Text einen Query-String, erscheinen seine Parameter dekodiert in einer Tabelle unter dem Tool. Für Binärdaten in URLs ist Base64url die übliche Alternative.

Häufig gestellte Fragen

Wird ein Leerzeichen in einer URL als %20 oder als Pluszeichen geschrieben?
In Pfaden und nach RFC 3986 ist ein Leerzeichen %20. Die +-Form steht nur in Query-Strings für ein Leerzeichen, die so kodiert sind, wie HTML-Formulare es tun. %20 ist daher überall die sichere Wahl.
Warum steht in meiner URL plötzlich %2520?
Sie wurde doppelt kodiert. Im ersten Durchgang wurde ein Leerzeichen zu %20, im zweiten wurde das % selbst als %25 kodiert. Dekodieren Sie einmal, um die zusätzliche Ebene rückgängig zu machen, und kodieren Sie Werte in Ihrem Code nur an einer Stelle.
Welche Zeichen müssen nie prozentkodiert werden?
Die nicht reservierten Zeichen nach RFC 3986: die Buchstaben A bis Z in Groß- und Kleinschreibung, die Ziffern 0 bis 9 sowie Bindestrich, Punkt, Unterstrich und Tilde.
Darf eine URL Umlaute und andere Sonderbuchstaben ohne Kodierung enthalten?
Browser zeigen sie an, aber bei der Übertragung wird jedes Nicht-ASCII-Zeichen in Pfad oder Query als prozentkodiertes UTF-8 gesendet. Domainnamen nutzen ein eigenes System, Punycode, das sie in xn--Labels umwandelt.
Warum meldet die Dekodierung eine fehlerhafte Sequenz?
Der Text enthält ein % ohne zwei folgende Hexadezimalziffern, etwa ein einzelnes „100%“, oder die Bytes ergeben ungültiges UTF-8. Kodieren Sie einzelne %-Zeichen vor dem Dekodieren als %25.