Skip to content

Was ist URL-Encoding (und warum wird aus Leerzeichen %20)?

6 Min. Lesezeit 13. Juni 2026
url-encodingprozent-codierungwebdev

URL-Encoding ersetzt Zeichen, die in einer Webadresse unsicher oder reserviert sind, durch ein Prozentzeichen und ihren Hex-Wert. Deshalb wird aus einem Leerzeichen %20. Das Ganze ist voll umkehrbar und keine Verschlüsselung.

Was ist URL-Encoding (und warum wird aus Leerzeichen %20)? — Hivly

Du siehst eine Webadresse mit %20 quer durch den Text, oder einen Suchlink, bei dem jedes Leerzeichen zu einem Prozentzeichen und zwei Ziffern geworden ist, und es sieht aus, als wäre die URL kaputt. Ist sie nicht. Das ist URL-Encoding, das seine Arbeit macht, und sobald du die Regel dahinter kennst, liest sich die kryptisch wirkende Adresse genauso klar wie die Wörter, die du getippt hast. Wichtig ist das, weil ein einziges nicht codiertes Zeichen einen Link still und leise an die falsche Stelle schicken kann.

TL;DR: URL-Encoding, auch Prozent-Codierung genannt, ersetzt Zeichen, die in einer Webadresse unsicher sind oder eine besondere Bedeutung haben, durch ein Prozentzeichen und den Hex-Wert ihres Bytes. Deshalb wird aus einem Leerzeichen %20 und aus einem Kaufmanns-Und innerhalb eines Werts %26. Das Ganze ist voll umkehrbar und keine Verschlüsselung, also kann jeder es dekodieren.

Warum URLs nur einen begrenzten Satz an Zeichen erlauben

Eine URL sollte sicher zu drucken, zu tippen und zwischen sehr unterschiedlichen Systemen weiterzugeben sein, deshalb kann sie nur einen kleinen Satz an Zeichen zuverlässig nutzen. Der sichere Satz sind die Buchstaben A bis Z und a bis z, die Ziffern 0 bis 9 und eine Handvoll Zeichen wie Bindestrich, Punkt, Unterstrich und Tilde. Alles andere läuft Gefahr, unterwegs falsch gelesen zu werden.

Das Problem ist, dass der Text, den du in eine URL packen willst, selten in diesem Satz bleibt. Suchbegriffe haben Leerzeichen. Namen haben Akzente. Werte tragen Satzzeichen mit sich. Ein Leerzeichen hat in einer URL gar nichts zu suchen, und wenn es roh durchrutscht, schneidet das eine System es ab, das nächste zerlegt den Link und ein drittes teilt die Adresse in zwei. Statt zu hoffen, dass jedes System mit ungewöhnlichen Zeichen gleich umgeht, wandelt URL-Encoding die riskanten in eine Form um, die jedes System bereits versteht.

Wie die Prozent-Codierung aus einem Leerzeichen %20 macht

Die Prozent-Codierung folgt einer Regel. Nimm das unsichere Zeichen, schlag den Hex-Wert seines Bytes nach und schreibe ein Prozentzeichen gefolgt von diesen beiden Hex-Ziffern. Das Prozentzeichen ist die Markierung, die sagt „hier folgt ein codiertes Zeichen”, und die beiden Ziffern sind der Wert. Ein Leerzeichen ist Byte 32, was hexadezimal 20 ist, also wird aus einem Leerzeichen %20. Ein Kaufmanns-Und wird %26. Eine Raute wird %23.

Weil die Regel mechanisch und fest ist, läuft sie in beide Richtungen. Beim Codieren geht man durch den Text und tauscht jedes unsichere Zeichen gegen seinen Prozent-Code. Beim Dekodieren erkennt man jedes Prozentzeichen, liest die nächsten zwei Ziffern und setzt das ursprüngliche Zeichen wieder ein. Es gibt kein Raten und keinen Schlüssel, weshalb ein URL-Encoder und -Decoder auf dev.hivly.net eine Zeichenkette in einem Schritt in beide Richtungen umwandeln und dir eine exakte Kopie des Originals zurückgeben kann.

Reservierte Zeichen gegenüber Zeichen, die nur maskiert werden müssen

Hier liegt der Punkt, der die Leute stolpern lässt: Manche Zeichen sind nicht verboten, sie sind reserviert, das heißt, sie tragen in einer URL eine strukturelle Bedeutung. Das Fragezeichen leitet den Query-String ein. Das Kaufmanns-Und trennt einen Parameter vom nächsten. Das Gleichheitszeichen verbindet einen Namen mit seinem Wert. Der Schrägstrich teilt den Pfad, und die Raute markiert ein Fragment. Diese Zeichen sind genau deshalb erlaubt, weil die URL sie braucht, um ihre eigenen Teile abzugrenzen.

Ein Zeichen kann also aus zwei verschiedenen Gründen in einer URL stehen, und das ändert, ob du es codierst. Wenn ein Schrägstrich im Pfad Ordner trennt, bleibt er ein Schrägstrich. Wenn ein Kaufmanns-Und zwei Query-Parameter trennt, bleibt es ein Kaufmanns-Und. Du codierst diese reservierten Zeichen nur, wenn sie innerhalb eines Werts auftauchen und du sie als normalen Text behandelt haben willst und nicht als Struktur. Alles außerhalb des sicheren Satzes, etwa Leerzeichen und Akzente, wird immer codiert, egal wo es steht.

Warum du Werte codierst, aber nicht die Trennzeichen

Stell dir eine URL wie ein Formular mit beschrifteten Feldern vor, und die reservierten Zeichen sind die Beschriftungen. Die Struktur eines Query-Strings ist ?name=value&name=value, wobei Fragezeichen, Gleichheitszeichen und Kaufmanns-Und die Form halten. Diese Trennzeichen müssen roh bleiben, denn sie sagen dem empfangenden System, wo ein Teil endet und der nächste beginnt. Codierst du sie, löschst du die Struktur.

Mit den Daten, die du in jedes Feld einträgst, ist es anders. Angenommen, ein Suchwert ist tom & jerry. Fügst du ihn roh ein, liest sich das Kaufmanns-Und als Trenner und das System denkt, du hättest zwei Parameter geschickt, und halbiert deinen Wert. Codierst du dieses innere Kaufmanns-Und als %26, bleibt es Teil des Werts, ein echtes Und statt eines Trenners. Das Gleiche gilt für ein Gleichheitszeichen oder einen Schrägstrich, der in den Wert gehört. Die Regel in der Praxis: Lass die Trennzeichen, die die URL aufbauen, in Ruhe, und codiere den Inhalt, den du hineingibst.

Die Pluszeichen-Eigenart bei der Form-Codierung

Es gibt zwei leicht unterschiedliche Traditionen, mit einem Leerzeichen umzugehen, und der Unterschied zwischen ihnen sorgt für echte Verwirrung. Die normale Prozent-Codierung nutzt immer %20 für ein Leerzeichen, überall in der URL. Aber eine ältere Konvention, die zum Einsatz kommt, wenn Browser HTML-Formulare absenden, codiert ein Leerzeichen im Query-String stattdessen als Pluszeichen. Du siehst also sowohl a%20b als auch a+b mit derselben Bedeutung, je nachdem, wie die URL gebaut wurde.

Das wird wichtig, wenn ein Pluszeichen echte Daten sind. Im Stil der Form-Codierung muss ein echtes Plus, das du behalten willst, als %2B geschrieben werden, denn ein nacktes Plus würde als Leerzeichen gelesen und ginge verloren. Die meisten modernen Tools und Bibliotheken behandeln die beiden Stile von selbst korrekt, also musst du selten von Hand entscheiden. Merken solltest du dir vor allem eines: Ein Plus im Query-String könnte ein verstecktes Leerzeichen sein, und ein echtes Plus muss codiert werden, um zu überleben.

URL-Encoding ist umkehrbar, keine Verschlüsselung

URL-Encoding sieht technisch aus, also nehmen manche an, die Prozent-Codes würden etwas verbergen. Tun sie nicht. Die Zuordnung ist ein veröffentlichter Standard, für alle identisch, ohne Schlüssel und ohne Geheimnis. Wer %26 liest, weiß, dass es ein Kaufmanns-Und ist, und jeder Decoder verwandelt die ganze Zeichenkette in einem Durchgang wieder in Klartext.

Das macht URL-Encoding zu einem Transportformat, aus derselben Familie wie Base64: ein Weg, Text sicher durch einen Kanal mit strengen Regeln zu bringen, nicht ein Weg, ihn privat zu halten. Trägt eine URL etwas Sensibles, ändert das Codieren nichts daran, wer es lesen kann, denn das Dekodieren ist kostenlos und sofort möglich. Behandle die Prozent-Codes als eine andere Schreibweise derselben Wörter, lesbar für jeden, und du nutzt sie richtig. Sie sorgen dafür, dass dein Link die Reise übersteht; ein Schloss für den Inhalt waren sie nie.

Try the developer & network toolsFormat, validate, encode and generate — JSON, Base64, JWT, regex, UUID, hashes — plus subnet/IPv6 calculators, live DNS, MX and reverse lookups, and SPF/DKIM/DMARC records.

Häufige Fragen

Warum wird aus einem Leerzeichen in einer URL %20?
Ein Leerzeichen ist in einer URL nicht erlaubt, deshalb wird es durch ein Prozentzeichen und den Hex-Wert seines Bytes ersetzt, und der ist 20. Das Prozentzeichen signalisiert ein maskiertes Zeichen, und 20 ist der hexadezimale Code für ein Leerzeichen. Beim Dekodieren wird der Tausch rückgängig gemacht und das ursprüngliche Leerzeichen wiederhergestellt.
Ist URL-Encoding eine Art Verschlüsselung?
Nein. URL-Encoding nutzt eine feste, öffentliche Regel, die unsichere Zeichen durch ein Prozentzeichen und einen Hex-Wert ersetzt. Es gibt keinen Schlüssel und kein Geheimnis, also kann jeder es sofort dekodieren. Der Zweck ist, dass Text sicher durch eine URL kommt, nicht, den Inhalt vor irgendwem zu verbergen.
Was ist der Unterschied zwischen %20 und einem Pluszeichen?
Beide können ein Leerzeichen bedeuten, aber sie stammen aus unterschiedlichen Regeln. Die Prozent-Codierung verwendet %20 für ein Leerzeichen an jeder Stelle einer URL. Die ältere Form-Codierung nutzt ein Pluszeichen für Leerzeichen in Query-Strings. Ein echtes Plus, das ein Plus bleiben soll, muss als %2B codiert werden, damit es nicht als Leerzeichen gelesen wird.
Welche Zeichen müssen URL-codiert werden?
Jedes Zeichen außerhalb des sicheren Satzes, also Buchstaben, Ziffern und ein paar Zeichen wie Bindestrich, Punkt, Unterstrich und Tilde. Leerzeichen, die meisten Satzzeichen und nicht-englische Buchstaben werden codiert. Reservierte Zeichen wie Fragezeichen, Kaufmanns-Und, Gleichheitszeichen, Schrägstrich und Raute werden nur codiert, wenn sie innerhalb eines Werts auftauchen und nicht als Struktur.

Weiterlesen

Etwas Größeres im Sinn?

Hivly stammt von CodingEagles, einem Software-Studio, das produktionsreife Web-Apps liefert. Wenn du ein echtes Projekt hast, melde dich.

Sieh, was CodingEagles macht →