Was URL-Kodierung ist
Eine Webadresse darf nur eine kleine Menge von Zeichen enthalten: Buchstaben, Ziffern und ein paar Symbole wie -, ., _ und ~. Andere Zeichen haben besondere Aufgaben. ? beginnt den Query-String, & trennt Parameter, = verbindet einen Namen mit einem Wert und # beginnt ein Fragment. Leerzeichen und Buchstaben außerhalb des englischen Alphabets, also auch ä, ö, ü und ß, sind gar nicht erlaubt.
Die URL-Kodierung, auch Prozentkodierung genannt, löst das. Jedes unsichere Zeichen wird in UTF-8-Bytes umgewandelt, und jedes Byte wird als % plus zwei Hex-Ziffern geschrieben. Ein Leerzeichen wird zu %20, & zu %26, é zu %C3%A9 und ü zu %C3%BC.
So nutzt du den URL Encoder
Kodieren. Tippe Text in Normaler Text oder füge ihn ein. Die kodierte Version erscheint in URL-kodiert. Klicke auf Kopieren, um sie zu übernehmen.
Dekodieren. Füge kodierten Text in URL-kodiert ein. Der lesbare Text erscheint links.
Unter Was kodierst du? wählst du im Menü unter den Feldern den Modus:
- Ein Wert oder Teil einer URL (encodeURIComponent) ist meistens die richtige Wahl. Kodiert alles außer Buchstaben, Ziffern und
- _ . ~. Nimm das für Suchbegriffe, Parameterwerte und Pfadabschnitte. - Eine ganze URL, : / ? & = bleiben (encodeURI) lässt die Struktur der Adresse in Ruhe und kodiert nur Leerzeichen, Umlaute und ähnliche Zeichen.
- Formulardaten, Leerzeichen als + (x-www-form-urlencoded) entspricht dem, was ein Browser beim Absenden eines HTML-Formulars schickt. Leerzeichen werden zu
+, und beim Dekodieren wird+wieder zu einem Leerzeichen.
Leeren leert beide Felder.
So funktioniert es
Der Text wird zuerst in UTF-8-Bytes umgewandelt. Jedes Byte, das nicht erlaubt ist, wird durch % und seinen Wert in Hexadezimal ersetzt. Der Buchstabe é besteht in UTF-8 aus zwei Bytes und wird deshalb zu zwei Escapes: %C3%A9. Dasselbe gilt für jeden Umlaut und für ß. Ein Emoji besteht aus vier Bytes und wird zu vier Escapes.
Im Komponentenmodus geht dieses Tool einen Schritt weiter als die einfache Browserfunktion. Es kodiert auch ! ' ( ) *, nach RFC 3986. Diese Zeichen sind technisch erlaubt, haben aber in manchen Servern und E-Mail-Programmen Probleme gemacht.
Dekodieren funktioniert umgekehrt. Folgen von %XX werden zu Bytes gesammelt und als UTF-8 gelesen.
Beispiele
| Eingabe | Komponente | Ganze URL | Formulardaten |
|---|---|---|---|
hello world |
hello%20world |
hello%20world |
hello+world |
Tom & Jerry |
Tom%20%26%20Jerry |
Tom%20&%20Jerry |
Tom+%26+Jerry |
a+b=c |
a%2Bb%3Dc |
a+b=c |
a%2Bb%3Dc |
50% off |
50%25%20off |
50%25%20off |
50%25+off |
café |
caf%C3%A9 |
caf%C3%A9 |
caf%C3%A9 |
it's (ok)*! |
it%27s%20%28ok%29%2A%21 |
it's%20(ok)*! |
it%27s+%28ok%29%2A%21 |
Grüße aus Köln |
Gr%C3%BC%C3%9Fe%20aus%20K%C3%B6ln |
Gr%C3%BC%C3%9Fe%20aus%20K%C3%B6ln |
Gr%C3%BC%C3%9Fe+aus+K%C3%B6ln |
Eine ganze Adresse zeigt den Unterschied am besten. https://example.com/a b?q=1&r=é wird im Modus für ganze URLs zu https://example.com/a%20b?q=1&r=%C3%A9, was weiterhin als Link funktioniert. Im Komponentenmodus wird derselbe Text zu https%3A%2F%2Fexample.com%2Fa%20b%3Fq%3D1%26r%3D%C3%A9. Das ist nur richtig, wenn die ganze Adresse selbst ein Parameterwert ist, etwa ein Weiterleitungsziel.
Alte Kodierungen mit Umlauten
Manchmal begegnet dir ein Umlaut als einzelnes Byte, etwa M%FCnchen statt M%C3%BCnchen. Das stammt aus alten Systemen, die Latin-1 statt UTF-8 nutzten. Dieses Tool liest nur UTF-8. Aus M%C3%BCnchen wird korrekt „München“, aus M%FCnchen dagegen „M�nchen“ mit einem Ersatzzeichen. Wenn du solche Links siehst, ist die Quelle veraltet, und die richtige UTF-8-Form ist %C3%BC.
Tipps und Grenzen
- Kodiere Werte, nicht ganze Links. Bau zuerst den Link und kodiere dann nur die Teile, die du einfügst.
- Achte auf doppelte Kodierung. Siehst du
%2520, wurde der Text zweimal kodiert. Dekodiere ihn einmal. - + ist nicht immer ein Leerzeichen. Es bedeutet nur in Formulardaten ein Leerzeichen. In einem Pfad ist
+ein normales Pluszeichen. Wähl vor dem Dekodieren den passenden Modus. - Kodieren ist kein Verstecken. Jeder kann kodierten Text lesen. Pack keine Passwörter in Links.
- Groß- und Kleinschreibung spielt in Escapes keine Rolle.
%c3%bcund%C3%BCbedeuten dasselbe. Großbuchstaben sind der übliche Stil.
Andere Wege
JavaScript. encodeURIComponent('Tom & Jerry') liefert Tom%20%26%20Jerry. Mit decodeURIComponent machst du es rückgängig. Beachte, dass es bei einer kaputten Folge wie %zz einen Fehler wirft, während dieses Tool sie stehen lässt.
Python. urllib.parse.quote('Tom & Jerry', safe='') liefert Tom%20%26%20Jerry, und urllib.parse.quote_plus liefert Tom+%26+Jerry.
Excel. =URLCODIEREN(A1) prozentkodiert den Text in Zelle A1 (in der englischen Version =ENCODEURL(A1), ab Excel 2013 unter Windows).
Kommandozeile. curl --data-urlencode "q=Tom & Jerry" kodiert einen Formularwert beim Senden.
Ähnliche Tools
Du baust Kampagnenlinks? Der UTM Parameter Generator kodiert jedes Tag für dich. Um einen Titel in einen sauberen Pfad zu verwandeln, nimm den URL Slug Generator. Für Binärdaten in einer URL ist Base64 mit der URL-sicheren Option oft besser geeignet.