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
URIError
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_шеллы"