Jeder kennt diese kryptischen URLs mit Prozentzeichen und Zahlen: suche?q=caf%C3%A9%20bar. Was auf den ersten Blick wie ein Fehler aussieht, ist in Wahrheit ein praezise definiertes Verfahren namens URL-Encoding oder Percent-Encoding. Es sorgt dafuer, dass auch Umlaute, Leerzeichen und Sonderzeichen verlustfrei in einer Webadresse transportiert werden koennen. Dieser Ratgeber erklaert, wie das funktioniert und wann du es brauchst.
Warum URLs nicht jedes Zeichen vertragen
Eine URL ist nach dem Standard RFC 3986 nur fuer einen begrenzten Zeichenvorrat gedacht: Buchstaben von A bis Z, Ziffern und eine Handvoll Sonderzeichen wie Bindestrich, Punkt oder Unterstrich. Alles andere, also Leerzeichen, deutsche Umlaute, kaufmaennisches Und oder ein Fragezeichen innerhalb eines Wertes, hat in der URL eine Sonderbedeutung oder ist gar nicht erlaubt.
Wuerde man ein Leerzeichen oder ein & einfach so in eine URL schreiben, koennte der Server die Adresse falsch interpretieren oder den Aufruf abbrechen. URL-Encoding loest dieses Problem, indem es problematische Zeichen in eine sichere Schreibweise uebersetzt.
So funktioniert Percent-Encoding
Das Prinzip ist einfach: Jedes nicht erlaubte Zeichen wird in seine Byte-Darstellung (UTF-8) umgewandelt, und jedes Byte wird als Prozentzeichen gefolgt von zwei Hexadezimalziffern geschrieben. Daher der Name Percent-Encoding. Ein paar Beispiele:
- Das Leerzeichen wird zu
%20(im Query-Teil oft auch zu einem Plus). - Das kaufmaennische Und
&wird zu%26. - Das Fragezeichen wird zu
%3F. - Der Umlaut
aeals Schriftzeichen wird zu%C3%A4, weil er in UTF-8 aus zwei Bytes besteht.
Beim Decodieren laeuft alles rueckwaerts: Aus %C3%A4 wird wieder der Umlaut. Genau das erledigt der URL Encoder & Decoder auf kotsch.tech in beide Richtungen, direkt im Browser und ohne dass dein Text das Geraet verlaesst.
Pfad oder Query: Das macht einen Unterschied
URL-Encoding ist nicht ueberall in der Adresse identisch. Man unterscheidet grob zwischen dem Pfad (vor dem Fragezeichen) und der Query (dem Teil mit den Parametern danach). Im Pfad sind etwa Schraegstriche erlaubt, in einem Parameterwert dagegen nicht, weil sie sonst die Struktur stoeren wuerden.
In der Praxis heisst das: Wenn du einen kompletten Wert in einen Query-Parameter packst, solltest du nur diesen Wert kodieren, nicht die ganze URL. Sonst kodierst du auch die Trennzeichen wie ? oder =, und die Adresse wird unbrauchbar. Ein guter Encoder bietet daher beide Modi an.
Typische Anwendungsfaelle
URL-Encoding begegnet dir oefter, als du denkst:
- Suchanfragen: Eine Suche nach "Buch & Stift" muss kodiert werden, sonst zerlegt das
&die Parameter falsch. - Tracking-Links: Kampagnenparameter mit Sonderzeichen muessen sauber kodiert sein, damit Analytics-Tools sie korrekt auswerten.
- API-Aufrufe: Werte, die du an eine Schnittstelle uebergibst, muessen kodiert werden, damit der Server sie eindeutig zerlegen kann.
- Redirect-Ziele: Wenn eine URL als Parameter in einer anderen URL steckt, muss sie doppelt sauber kodiert werden.
Haeufige Stolperfallen
Die typischen Fehler lassen sich leicht vermeiden, wenn man sie kennt:
- Doppelte Kodierung: Wer einen bereits kodierten Text noch einmal kodiert, macht aus
%20ein%2520. Pruefe im Zweifel zuerst, ob der Text schon kodiert ist. - Plus statt Prozent zwanzig: In Formulardaten steht ein Plus fuer das Leerzeichen, in Pfaden nicht. Verwechslungen fuehren zu fehlerhaften Werten.
- Falscher Zeichensatz: Moderne Systeme erwarten UTF-8. Wird ein anderer Zeichensatz angenommen, erscheinen Umlaute als Kauderwelsch.
Mit dem URL Encoder & Decoder testest du solche Faelle in Sekunden. Fuer angrenzende Aufgaben lohnt ausserdem ein Blick auf den Text Decoder, der neben URL-Encoding auch Base64, HTML-Entities und Hex beherrscht, sowie auf die gesamte Sammlung unter kotsch.tech/webtools.
Fazit
URL-Encoding ist die Uebersetzungsschicht, die jede Webadresse robust macht. Sonderzeichen werden in eine sichere Prozent-Schreibweise gebracht und beim Empfaenger wieder zurueckverwandelt. Wer den Unterschied zwischen Pfad und Query kennt und doppelte Kodierung vermeidet, hat das Thema im Griff. Probier es direkt mit dem URL Encoder & Decoder aus.