Curious TechieDev Toolbox
Alle Leitfäden/Webstandards8 min read

Was ist URL-Encoding (Prozent-Kodierung)?

RFC 3986 Standards, reservierte Trennzeichen, UTF-8 Byte-Umwandlung und Bereinigung von Abfragezeichenfolgen.

Wichtigste Erkenntnisse
  • Prozent-Kodierung übersetzt Sonderzeichen in hexadezimale %HH Bytefolgen (RFC 3986).
  • Reservierte Trennzeichen wie ? und & müssen in Parameterwerten maskiert werden.
  • encodeURIComponent() sichert Werte ab, encodeURI() behält Pfadstrukturen bei.
  • Leerzeichen werden standardmäßig als %20 oder im Formularkontext als + kodiert.

Uniform Resource Identifiers (URIs) basieren historisch auf einer begrenzten Teilmenge von US-ASCII. Um Sonderzeichen, Emojis und Umlaute fehlerfrei über das Internet zu übertragen, dient das Percent-Encoding (URL-Encoding).

1. Warum URLs Prozent-Kodierung erfordern

Nach RFC 3986 ersetzt das Verfahren nicht zulässige Zeichen durch ein Prozentzeichen (%) gefolgt von zwei Hexadezimalziffern des UTF-8-Bytes (z. B. Leerzeichen = %20).

2. Reservierte vs. nicht reservierte Zeichen

  • Nicht reserviert: A-Z, a-z, 0-9, -, _, ., ~ (bleiben unberührt).
  • Reserviert (Trennzeichen): :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =.

3. encodeURI vs encodeURIComponent

Nutzen Sie encodeURI für vollständige URLs, um Protokoll (https://) und Pfad-Schrägstriche (/) zu bewahren. Nutzen Sie encodeURIComponent zum Kodieren einzelner Abfrageparameter.

4. Das Leerzeichen-Dilemma: %20 vs. Plus (+)

RFC 3986 definiert %20 für Leerzeichen überall in einer URI. Das Pluszeichen (+) für Leerzeichen entstammt dem Formular-Standard (application/x-www-form-urlencoded) und ist nur in URL-Parametern üblich.