URL
URL-Encoder
URLs prozentkodieren und dekodieren.
Über Prozentkodierung
Prozentkodierung (auch URL-Kodierung genannt) ersetzt Zeichen, die in einer URL nicht sicher sind — Leerzeichen, &, ?, # nicht-ASCII-Buchstaben und mehr — durch ein % gefolgt von ihrem hexadezimalen Byte-Wert. So können Query-Strings und Pfadsegmente beliebigen Text tragen, ohne die Syntax der URL selbst zu brechen.
Nicht jedes Zeichen muss kodiert werden, und welche Menge genau unangetastet bleibt, hängt vom Kontext ab. RFC 3986 markiert Buchstaben, Ziffern und - _ . ~ als immer sicher; alles andere im „reservierten“ Zeichensatz (wie / ? # &) ist nur dort sicher, wo es nicht bereits eine syntaktische Aufgabe erfüllt. Es gibt auch eine formularspezifische Eigenheit: application/x-www-form-urlencoded, das Format, in dem Browser HTML-Formulare übermitteln, kodiert ein Leerzeichen als + statt als %20 — eine Konvention, die nur für diesen einen Inhaltstyp gilt, nicht für URLs im Allgemeinen.
Wo Sie darauf treffen
- Query-String-Werte mit Leerzeichen, Symbolen oder nicht-lateinischem Text
- Formularübermittlungen als application/x-www-form-urlencoded
- Kodierung von Weiterleitungs-URLs oder Tokens, die als URL-Parameter übergeben werden
- Dateipfade oder Suchbegriffe sicher in einen Link einbetten
Häufige Fragen
Ist Prozentkodierung dasselbe wie Base64?
Nein — sie lösen unterschiedliche Probleme. Prozentkodierung maskiert bestimmte unsichere Zeichen innerhalb von sonst lesbarem Text; Base64 kodiert ganze Binärdaten in ein festes Alphabet um.
Warum bleiben manche Zeichen unverändert?
Buchstaben, Ziffern und einige Symbole (- _ . ~) gelten in einer URL als immer sicher und werden daher nicht verändert.
Kodiert das eine ganze URL oder nur einen Teil?
Nur den Text, den Sie als Wert einfügen. Eine ganze URL zu kodieren würde auch die Schrägstriche und Doppelpunkte maskieren, die unverändert bleiben müssen — wenden Sie es also auf einzelne Query-Werte an, nicht auf die ganze Adresse.
Warum wird ein Leerzeichen manchmal zu + und manchmal zu %20?
Beides ist gültig, nur an unterschiedlichen Stellen. Im Pfad oder in der Query-String einer URL wird ein Leerzeichen korrekt als %20 kodiert. Die Kurzform + ist spezifisch für das Format application/x-www-form-urlencoded, in dem HTML-Formulare übermittelt werden; dort muss ein echtes + selbst zu %2B kodiert werden, um Mehrdeutigkeit zu vermeiden. Dieses Tool erzeugt %20, was immer korrekt ist; wenn Sie einen formularkodierten Body von Hand bauen, ersetzen Sie kodierte Leerzeichen durch +.