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.