URL Encoding
URL-Kodierung (Prozent-Kodierung)
Ein Mechanismus zur Kodierung von Sonderzeichen in URLs, indem diese durch ein Prozentzeichen gefolgt von ihrem hexadezimalen ASCII-Wert ersetzt werden (z.B. Leerzeichen wird zu %20), um sicherzustellen, dass URLs nur gültige, eindeutige Zeichen enthalten.
Technisches Detail
Prozent-Kodierung (RFC 3986) konvertiert jedes Byte der UTF-8-Darstellung eines Zeichens in das Format %HH. Nicht reservierte Zeichen (A-Z, a-z, 0-9, -, _, ., ~) werden nie kodiert. Reservierte Zeichen (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) werden kodiert, wenn sie außerhalb ihrer syntaktischen Rolle verwendet werden. JavaScript stellt encodeURIComponent() (kodiert alles außer nicht reservierten Zeichen) vs. encodeURI() (behält URL-Strukturzeichen bei) bereit. Leerzeichen können als %20 (Standard) oder + (nur in application/x-www-form-urlencoded) kodiert werden. Doppelkodierung (ein bereits kodiertes % als %25 kodieren) ist ein häufiger Fehler.
Beispiel
```javascript
// URL encode/decode
encodeURIComponent('hello world & more');
// → 'hello%20world%20%26%20more'
decodeURIComponent('hello%20world');
// → 'hello world'
// Build query string
const params = new URLSearchParams({ q: 'pdf merge', page: '1' });
params.toString(); // 'q=pdf+merge&page=1'
```