Über URL-Kodierung
URLs dürfen nur eine begrenzte Menge an ASCII-Zeichen enthalten. Sonderzeichen wie Leerzeichen, Kaufmanns-Und und Nicht-ASCII-Zeichen müssen prozent-kodiert werden: ersetzt durch ein Prozentzeichen gefolgt von zwei hexadezimalen Ziffern. Ein Leerzeichen wird z.B. zu %20.
Dieses Werkzeug verwendet encodeURIComponent, das alles außer Buchstaben, Ziffern und - _ . ! ~ * ( ) kodiert. Es ist die richtige Funktion für Abfragezeichenfolgenparameter oder Pfadsegmente, nicht für ganze URLs.
Wie kodiert man eine URL-Komponente prozentual?
Um Text für die Verwendung in einer URL prozentual zu kodieren, ersetzen Sie jedes Zeichen außerhalb der unreservierten Menge (Buchstaben, Ziffern und - _ . ! ~ * ' ( )) durch ein Prozentzeichen gefolgt von zwei Hexadezimalziffern, die den UTF-8-Bytewert dieses Zeichens darstellen. Beispiel: 'hello world' wird zu 'hello%20world' und 'café' wird zu 'caf%C3%A9'.
Schritte zur prozentualen Kodierung und Dekodierung einer URL-Komponente
- Wandeln Sie den Eingabetext in UTF-8-Bytes um, da Nicht-ASCII-Zeichen durch mehr als ein Byte dargestellt werden können.
- Prüfen Sie jedes Byte; entspricht es einem unreservierten Zeichen (A-Z, a-z, 0-9, - _ . ! ~ * ' ( )), lassen Sie es unverändert.
- Ersetzen Sie jedes andere Byte durch ein Prozentzeichen gefolgt von seinem zweistelligen Großbuchstaben-Hexadezimalwert, zum Beispiel wird ein Leerzeichen (0x20) zu %20.
- Fügen Sie die Ergebnisse wieder zu einer einzigen Zeichenkette zusammen; dies ist die prozentual kodierte, URL-sichere Darstellung des Originaltextes.
- Zum Dekodieren suchen Sie nach % gefolgt von zwei Hex-Ziffern, wandeln jede zurück in ihren Bytewert um und setzen die UTF-8-Bytes wieder zum Originaltext zusammen.
Regel der prozentualen Kodierung
Reserviertes/unsicheres Byte -> %XX, wobei XX der Bytewert in zwei großgeschriebenen Hexadezimalziffern ist
- Unreservierte Zeichen = A-Z, a-z, 0-9, - _ . ! ~ * ' ( ) — werden nie kodiert
- %XX = Prozentzeichen plus zwei Hex-Ziffern, die ein Byte der UTF-8-Kodierung des ursprünglichen Zeichens darstellen
Beispielhafte Kodierungsergebnisse
| Text | Kodiert |
|---|
| hello world | hello%20world |
| a=b&c=d | a%3Db%26c%3Dd |
| café | caf%C3%A9 |
| 100% off! | 100%25%20off! |
| user@example.com | user%40example.com |
Häufig gestellte Fragen
Warum lässt encodeURIComponent ! ~ * ' ( ) unkodiert?
Diese Zeichen gelten zusammen mit Buchstaben, Ziffern und - _ . als sicher für die direkte Verwendung in einer URI-Komponente und haben dort keine besondere Bedeutung, sodass JavaScripts encodeURIComponent sie unverändert lässt. Andere Funktionen wie encodeURI reservieren eine andere, größere Zeichenmenge, da sie für die Kodierung einer vollständigen URL statt einer einzelnen Komponente gedacht sind.
Was ist der Unterschied zwischen dem Kodieren einer URL-Komponente und einer gesamten URL?
Beim Kodieren einer einzelnen Komponente (etwa eines Abfrageparameterwerts) sollten Zeichen wie & und = escaped werden, damit sie nicht mit der URL-Struktur verwechselt werden. Beim Kodieren einer gesamten URL müssen Strukturzeichen wie :, /, ? und & unverändert bleiben, damit die URL weiterhin korrekt geparst wird — deshalb verhalten sich encodeURIComponent und encodeURI unterschiedlich.
Warum wird ein Leerzeichen manchmal zu %20 und manchmal zu +?
%20 ist die allgemeine Prozentkodierung für ein Leerzeichen im URL-Pfad und in der Ausgabe von encodeURIComponent. Das Pluszeichen für ein Leerzeichen ist eine ältere Konvention speziell für das Format application/x-www-form-urlencoded, das bei HTML-Formularübermittlungen und Abfragezeichenketten verwendet wird, keine allgemeine URL-Kodierungsregel.
Warum schlägt das Dekodieren bei manchen Eingaben mit einem Fehler fehl?
Das Dekodieren schlägt fehl, wenn auf ein % keine zwei gültigen Hexadezimalziffern folgen oder wenn die dekodierten Bytes kein gültiges UTF-8 ergeben — zum Beispiel beim Einfügen einer unvollständigen Prozentsequenz wie %E2%9 ohne ihr letztes Byte. Prüfen Sie, ob die Eingabe vollständig und korrekt prozentkodiert ist.
Dieses Werkzeug kodiert und dekodiert einen einzelnen Textwert mit JavaScripts encodeURIComponent/decodeURIComponent gemäß den unreservierten Zeichen aus RFC 3986; es parst oder validiert nicht die Struktur einer vollständigen URL (Schema, Host, Pfad, Abfrage) als separate Komponenten.
Sources: RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax
Datenschutz und Sicherheit
- Läuft im Browser — Ihre Eingaben werden ausschließlich auf Ihrem Gerät berechnet und nicht an einen utilduck-Server gesendet.
- Verschlüsselte Verbindung — Alle Seiten werden über HTTPS ausgeliefert, sodass niemand im Netzwerk mitlesen kann.
- Keine Weitergabe an Dritte — Ihre Eingaben werden nicht an Analyse- oder Werbedienste weitergegeben.
- Keine Speicherung — Ergebnisse werden auf keinem Server gespeichert, und ein Konto ist nicht nötig.
Zuletzt aktualisiert: 2026-08-17