🌐 DE

🔗 URL-Encoder/Decoder

Kodieren oder dekodieren Sie URLs sicher. Verarbeiten Sie Sonderzeichen, internationale Zeichen und Leerzeichen in Abfrageparametern, um gültige URLs zu erstellen.

RATGEBER

Mehr erfahren

01

1. Was ist URL-Kodierung?

Die URL-Kodierung (Prozent-Kodierung) ist der Prozess, bei dem unsichere Zeichen in URLs in % gefolgt von einem Hexadezimalcode umgewandelt werden. Da URLs nur ASCII-Zeichen zulassen, müssen Umlaute, Sonderzeichen und Leerzeichen kodiert werden. Zum Beispiel wird ein Leerzeichen zu %20, @ wird zu %40, und das deutsche Wort „Café“ wird zu %43%61%66%C3%A9. Gemäß der Norm RFC 3986 müssen alle Zeichen außer A-Z, a-z, 0-9, -, _, ., ~ kodiert werden. Jeder Teil einer URL (Abfrageparameter, Pfade, Anker) hat seine eigenen Kodierungsregeln.

02

2. Warum Sonderzeichen kodieren

Sonderzeichen in einer URL haben eine besondere Bedeutung, weshalb sie kodiert werden müssen, um als Werte verwendet zu werden. Zum Beispiel ist & ein Parameter-Trenner; um & in einem Wert einzuschließen, muss es als %26 kodiert werden. = trennt einen Schlüssel von seinem Wert, ? markiert den Beginn der Abfrage, # markiert den Beginn des Fragments. Leerzeichen werden als + oder %20 kodiert. Ohne Kodierung von Umlauten oder Sonderzeichen können Server die URL möglicherweise nicht korrekt verarbeiten oder einen 404-Fehler zurückgeben. Kodieren Sie stets Suchbegriffe oder Benutzereingaben, die in einer URL enthalten sind.

03

3. Kodierung von Abfrageparametern

Abfrageparameter sind der Teil der URL, der am häufigsten von der Kodierung betroffen ist. Beispiel: https://example.com/search?q=begriff&category=IT. Hier müssen sowohl „begriff“ als auch „IT“ kodiert werden. Die JavaScript-Funktion encodeURIComponent() kodiert auch =, &, ?, wodurch sie sich sicher für Werte von Abfrageparametern eignet. encodeURI() dient zur Kodierung einer gesamten URL, kodiert jedoch nicht =, &, ?, weshalb sie für Abfragewerte ungeeignet ist. Kodieren Sie Schlüssel und Werte stets einzeln mit encodeURIComponent().

04

4. encodeURI vs. encodeURIComponent

JavaScript bietet zwei Funktionen zur URL-Kodierung. encodeURI() kodiert eine gesamte URL und kodiert keine strukturellen Zeichen der URL wie :, /, ?, &, =. Zu verwenden für vollständige URLs. encodeURIComponent() kodiert URL-Komponenten (Parameterwerte usw.) und kodiert alle strukturellen Zeichen. Zu verwenden für einzelne Komponenten wie Abfrageparameter und Pfadsegmente. In den meisten Fällen ist encodeURIComponent() sicherer. Die Dekodierung erfolgt jeweils mit decodeURI() und decodeURIComponent().

05

5. Internationalisierte Domainnamen (IDN)

Domainnamen auf Deutsch oder in anderen Sprachen (zum Beispiel café.com) werden in Punycode umgewandelt. Punycode stellt Unicode-Domains mithilfe des Präfixes xn-- in ASCII dar. Beispiel: „café.com“ wird zu „xn--caf-dma.com“. Browser führen diese Umwandlung automatisch durch, doch eine direkte Verarbeitung im Code erfordert eine Punycode-Bibliothek. Beachten Sie, dass Pfade und Abfragen einer URL die klassische Prozent-Kodierung verwenden, während Domains Punycode nutzen.

06

6. Bewährte Praktiken der URL-Kodierung

Einige wichtige Punkte zur URL-Kodierung: Kodieren Sie stets Benutzereingaben, um XSS-Angriffe zu verhindern. Vermeiden Sie es, eine bereits kodierte URL erneut zu kodieren (Problem der doppelten Kodierung). Kodieren Sie beim Erstellen einer URL jeden Teil einzeln, bevor Sie sie zusammensetzen. HTTP-Clients wie fetch() und axios kodieren oft automatisch, vermeiden Sie also Doppelungen. Server unterstützen in der Regel die automatische Dekodierung, sodass eine explizite Dekodierung selten erforderlich ist. Zum Protokollieren oder Debuggen von URLs ist die dekodierte Form besser lesbar.

Häufig gestellte Fragen

Was passiert, wenn ich Leerzeichen oder Umlaute nicht kodiere?
Da URLs nur ASCII-Zeichen zulassen, kann ein Server nicht kodierte Leerzeichen, Umlaute oder Sonderzeichen möglicherweise nicht korrekt verarbeiten und einen Fehler wie 404 zurückgeben. Kodieren Sie deshalb stets Suchbegriffe oder Benutzereingaben in einer URL.
Was ist der Unterschied zwischen encodeURI() und encodeURIComponent()?
encodeURI() kodiert eine gesamte URL und lässt Strukturzeichen wie :, /, ?, &, = unverändert, während encodeURIComponent() auch diese Strukturzeichen kodiert. Für einzelne Abfrageparameter oder Pfadsegmente ist encodeURIComponent() in den meisten Fällen die sicherere Wahl.
Warum muss das kaufmännische Und (&) in einem Parameterwert kodiert werden?
& dient in URLs als Trennzeichen zwischen mehreren Parametern. Soll & selbst Teil eines Wertes sein, muss es als %26 kodiert werden, da der Server es sonst als Beginn eines neuen Parameters interpretiert.
Was bedeutet doppelte Kodierung, und wie vermeide ich sie?
Doppelte Kodierung entsteht, wenn eine bereits kodierte URL (z. B. mit %20) erneut kodiert wird, wodurch ungültige Zeichenfolgen wie %2520 entstehen. Prüfen Sie vor dem Kodieren, ob die URL bereits kodiert ist, besonders wenn HTTP-Clients wie fetch() oder axios automatisch kodieren.
Wie werden deutsche Domainnamen wie „café.de" in einer URL dargestellt?
Solche Domainnamen werden mittels Punycode in ASCII umgewandelt, wobei ein xn--Präfix verwendet wird (z. B. „café.com" → „xn--caf-dma.com"). Browser übernehmen diese Umwandlung automatisch; nur bei direkter Verarbeitung im Code wird eine Punycode-Bibliothek benötigt.