URIError: malformed URI sequence
Die JavaScript-Ausnahme "malformed URI sequence" tritt auf, wenn die URI-Kodierung oder -Dekodierung nicht erfolgreich war.
Nachricht
URIError: URI malformed (V8-based) URIError: malformed URI sequence (Firefox) URIError: String contained an illegal UTF-16 sequence. (Safari)
Fehlerart
Was ging schief?
Die URI-Kodierung oder -Dekodierung war nicht erfolgreich. Ein Argument, das entweder der
decodeURI
, encodeURI
, encodeURIComponent
oder
decodeURIComponent
Funktion übergeben wurde, war nicht gültig, sodass die Funktion
nicht in der Lage war, korrekt zu kodieren oder zu dekodieren.
Beispiele
Kodierung
Die Kodierung ersetzt jede Instanz bestimmter Zeichen durch eine, zwei, drei oder vier
Escape-Sequenzen, die die UTF-8-Kodierung des Zeichens darstellen. Ein
URIError
wird ausgelöst, wenn versucht wird, ein Surrogat zu kodieren, das nicht Teil eines Hoch-Niedrig-Paares ist, zum Beispiel:
encodeURI("\uD800");
// "URIError: malformed URI sequence"
encodeURI("\uDFFF");
// "URIError: malformed URI sequence"
Ein Hoch-Niedrig-Paar ist in Ordnung. Zum Beispiel:
encodeURI("\uD800\uDFFF");
// "%F0%90%8F%BF"
Dekodierung
Die Dekodierung ersetzt jede Escape-Sequenz im kodierten URI-Komponenten durch das Zeichen, das sie darstellt. Wenn es ein solches Zeichen nicht gibt, wird ein Fehler ausgelöst:
decodeURIComponent("%E0%A4%A");
// "URIError: malformed URI sequence"
Mit korrektem Input sollte dies normalerweise so aussehen:
decodeURIComponent("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B");
// "JavaScript_шеллы"