/ Encoding & Hashing

URL Encoder/Decoder

Encodiert oder decodiert URLs und URL-Komponenten via encodeURI/encodeURIComponent — mit Mode- und Scope-Wahl.

Eingabe 0 Zeichen
Ausgabe

URL-Encoding (Percent-Encoding) verstehen

Eine URL darf nur eine begrenzte Menge an ASCII-Zeichen enthalten. Alles andere — Leerzeichen, Umlaute, Sonderzeichen, kyrillische oder asiatische Buchstaben — muss Percent-encoded werden: %20 für ein Leerzeichen, %C3%A4 für ein ä. Diese Codierung ist in RFC 3986 spezifiziert und wird von Browser, Server und API einheitlich verstanden.

encodeURI vs. encodeURIComponent

Diese beiden JavaScript-Funktionen unterscheiden sich in der Menge der Zeichen, die sie unangetastet lassen:

  • encodeURIComponent codiert alles außer Buchstaben, Ziffern und - _ . ! ~ * ' ( ) — passt für einzelne Werte und Query-Parameter
  • encodeURI lässt zusätzlich URI-Strukturzeichen (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) unangetastet — passt für komplette URLs, deren Struktur erhalten bleiben soll

Faustregel

Beim Bauen einer URL aus Bausteinen immer encodeURIComponent auf jeden einzelnen Wert anwenden. Beim Reparieren einer komplett vorhandenen URL mit Sonderzeichen reicht encodeURI. Doppeltes Encoden vermeiden — sonst wird aus %20 ein %2520.