URIError: malformed URI sequence
Message
URIError: The URI to be encoded contains invalid character (Edge) URIError: malformed URI sequence (Firefox) URIError: URI malformed (Chrome)
Type d'erreur
URIError
Quel est le problème ?
Il y a eu une erreur lors de l'encodage ou du décodage de l'URI. Un argument fourni à decodeURI
, encodeURI
, encodeURIComponent
ou à decodeURIComponent
n'était pas valide et la fonction concernée n'a pas pu encoder ou décoder la valeur correctement.
Exemples
>Encodage
L'encodage permet de remplacer certains caractères par une, deux, trois voire quatre séquences d'échappement qui représente l'encodage UTF-8 du caractère. Une exception URIError
sera levée si on tente d'encoder un caractère surrogate qui ne fait pas partie d'une paire de codets :
encodeURI("\uD800");
// "URIError: malformed URI sequence"
encodeURI("\uDFFF");
// "URIError: malformed URI sequence"
En revanche, si on dispose de la paire de codets :
encodeURI("\uD800\uDFFF");
// "%F0%90%8F%BF"
Décodage
Le décodage permet de remplacer chaque séquence d'échappement dans le composant encodé par le caractère qu'elle représente. S'il n'existe aucun caractère correspondant, une exception sera déclenchée :
decodeURIComponent("%E0%A4%A");
// "URIError: malformed URI sequence"
Avec la valeur d'entrée correcte, on a généralement quelque chose qui ressemble à :
decodeURIComponent("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B");
// "JavaScript_шеллы"