URL Encoder/Decoder
Encodiert oder decodiert URLs und URL-Komponenten via encodeURI/encodeURIComponent — mit Mode- und Scope-Wahl.
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.