🌐 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.