URL-Prozentkodierung: Warum URLs Leerzeichen durch %20 ersetzen (RFC 3986-Leitfaden)

URLs sind auf einen strikten ASCII-Zeichensatz beschränkt. Sonderzeichen – Leerzeichen, Akzente, kaufmännische Und-Zeichen, Schrägstriche – müssen als prozentcodierte Sequenzen codiert werden (z. B. Leerzeichen = %20), um sicher über das Internet übertragen zu werden.

URL containing special characters being encoded to percent-encoded safe format

Warum URLs eine Sonderzeichenkodierung benötigen

Comparison between RFC 3986 percent-20 and application-form-urlencoded plus encoding for spaces

URLs werden mithilfe des HTTP-Protokolls über Netzwerke übertragen. Die HTTP-Spezifikation (und ihr Vorgänger, die Internetprotokollstandards) beschränken URLs auf eine Teilmenge von US-ASCII-Zeichen – insbesondere Zeichen mit Bytewerten zwischen 0x21 und 0x7E.

Zeichen außerhalb dieses Bereichs – einschließlich Leerzeichen, Akzentzeichen (é, ñ, ü), chinesische/japanische/koreanische Zeichen und viele Symbole – sind in URLs ohne Codierung nicht sicher.

Warum speziell Leerzeichen? HTTP verwendet Leerzeichen als Trennzeichen zwischen der Methode, der URL und der Protokollversion in der Anforderungszeile:

GET /search?q=hello world HTTP/1.1

Der Server sieht „hello“ als Ende der URL und „world“ als ungültigen Teil der HTTP-Versionszeichenfolge. Die URL ist defekt.

Die Lösung: Prozentkodierung (definiert in RFC 3986) wandelt unsichere Zeichen in eine sichere %XX-Notation um, wobei XX der hexadezimale Bytewert ist.


So funktioniert die prozentuale Kodierung

JavaScript URL encoding API difference between encodeURI and encodeURIComponent functions

Hexadecimal ASCII byte lookup table for the eight most frequently encoded URL special characters

Jedes Zeichen in UTF-8 besteht aus einem bis vier Bytes. Die prozentuale Kodierung wandelt jedes Byte in % um, gefolgt von zwei hexadezimalen Ziffern:

CharakterUTF-8 ByteProzentkodiert
Leerzeichen0x20%20
#0x23%23
&0x26%26
=0x3D%3D
/0x2F%2F
é0xC3 0xA9%C3%A9
中0xE4 0xB8 0xAD%E4%B8%AD

Eine URL mit chinesischen Zeichen wie https://example.com/搜索 wird zu: https://example.com/%E6%90%9C%E7%B4%A2


Reservierte Charaktere vs. nicht reservierte Charaktere

Reserved versus unreserved URL character set comparison showing characters that must be percent-encoded

Nicht reservierte Zeichen (diese niemals kodieren): A-Z a-z 0-9 - _ . ~ Diese sind in allen URL-Kontexten sicher und sollten immer unverschlüsselt erscheinen.

Reservierte Zeichen (kodiert bei Verwendung als Daten, nicht als Trennzeichen): : /? # [ ] @ ! $ & ' ( ) * + , ; = Diese Zeichen haben in URLs eine besondere Bedeutung. Codieren Sie sie, wenn sie als Literaldaten in einem Abfrageparameterwert erscheinen.

Beispiel – Suchanfrage-URL:

https://example.com/search?q=cats&dogs

Das ist nicht eindeutig – handelt es sich bei der Suchanfrage um „Katzen“ oder „Katzen und Hunde“? Mit Kodierung:

https://example.com/search?q=cats%26dogs

Jetzt wird das kaufmännische Und als Daten codiert, nicht als Abfrageparameter-Trennzeichen.


URLs auf ToolDolfen kodieren und dekodieren

ToolDolfen in-browser URL encoder and decoder client-side execution workflow

  1. Öffnen Sie den URL Encoder & Decoder.
  2. So kodieren Sie: Fügen Sie eine URL oder URL-Komponente ein, die Sonderzeichen enthält. Klicken Sie auf „Kodieren“.
  3. So dekodieren Sie: Fügen Sie eine prozentkodierte URL oder Zeichenfolge ein, um das für Menschen lesbare Original anzuzeigen.

Das Tool verarbeitet sowohl vollständige URLs als auch URL-Komponenten (einzelne Abfrageparameterwerte). Bei der vollständigen URL-Kodierung werden nur nicht reservierte Zeichen kodiert; Für die Komponentenkodierung werden auch reservierte Zeichen kodiert.

Empfohlene Begleithandbücher

Entdecken Sie ergänzende Tutorials und Dienstprogramme aus diesem Themencluster, um Ihren digitalen Workflow zu verbessern:

HEX, RGB und HSL: Der vollständige Leitfaden zu Farbmodellen für CSS und DesignPraktische Schritt-für-Schritt-Anleitung mit verifizierten Standards und im Browser Arbeitsabläufe.Die Mathematik sicherer Passwörter: Entropie, NIST-Richtlinien und PasswortlängePraktische Schritt-für-Schritt-Anleitung mit verifizierten Standards und im Browser Workflows.Markdown-zu-HTML-Konverter-Leitfaden: GFM-Tabellen, Mathematik und reale FallstrickePraktische Schritt-für-Schritt-Anleitung mit verifizierten Standards und im Browser Workflows.So teilen Sie PDF-Dateien auf und extrahieren bestimmte SeitenbereicheKomplementärer formatübergreifender Workflow, der verwandte Daten und Medientools verbindet.
Empfohlenes Dienstprogramm: URL-Encoder/DecoderFühren Sie diesen Workflow live in Ihrem Browser aus, ohne Server-Uploads und mit 100 % clientseitigem Datenschutz.
URL Encoder & Decoder
URL Encoder & Decoder

Häufig Gestellte Fragen (FAQ)

Finden Sie schnelle, verifizierte Antworten auf häufige Fragen zu diesem Arbeitsablauf.

Was ist der Unterschied zwischen %20 und + für Leerzeichen in URLs?

%20 ist die RFC 3986-Standard-Prozentkodierung für ein Leerzeichen in URLs. Das +-Zeichen ist eine alte HTML-Formularcodierungskonvention (application/x-www-form-urlencoded) für Leerzeichen in Abfrageparametern. Während + in Abfragezeichenfolgen weithin unterstützt wird, ist %20 allgemeiner korrekt und wird für URL-Pfade empfohlen.

Gibt es Zeichen, die niemals in einer URL codiert werden sollten?

Ja. Nicht reservierte Zeichen (A-Z, a-z, 0-9, -, _, ., ~) sollten niemals codiert werden – sie sind in allen URL-Kontexten sicher. Reservierte Zeichen (/, ?, #, &, =, @, !, $) sollten nicht codiert werden, wenn sie ihre funktionale Rolle erfüllen (z. B. / beim Trennen von Pfadsegmenten).

Warum gibt meine URL einen 404-Fehler aus, wenn ich sie mit Sonderzeichen einfüge?

Viele Webserver lehnen URLs ab, die unverschlüsselte Sonderzeichen enthalten. Wenn Ihre URL Leerzeichen, eckige Klammern, geschweifte Klammern oder Nicht-ASCII-Zeichen (Akzentbuchstaben, CJK-Zeichen) enthält, kodieren Sie diese zuerst mit dem URL-Encoder.

Bilal Ahmad