Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

encodeURI()

La fonction encodeURI() encode un Uniform Resource Identifier (URI) en remplaçant chaque exemplaire de certains caractères par une, deux, trois ou quatre séquences d'échappement représentant le caractère encodé en UTF-8 (les quatre séquences d'échappement ne seront utilisées que si le caractère est composé de deux caractères « surrogate »).

Syntaxe

encodeURI(URI)

Paramètres

URI
Un Uniform Resource Identifier complet.

Valeur de retour

Une nouvelle chaîne de caractères représentant un URI, encodé, à partir de la chaîne de caractères passée en argument.

Description

En prenant l'hypothèse que l'URI est un URI complet, les caractères réservés qui ont une signification spéciale ne sont pas encodés.

encodeURI remplacera tous les caractères par leur séquence d'échappement UTF-8, à l'exception des caractères suivants :

Type Comprend
Caractères réservés ; , / ? : @ & = + $
Caractères non échappés caractères de l'alphabet latin, chiffres, - _ . ! ~ * ' ( )
Croisillon #

encodeURI seule ne permet pas de former des requêtes HTTP GET et POST entières (comme le permet XMLHTTPRequest) car "&", "+", et "=" ne sont pas encodés et sont traités comme des caractères spéciaux pour les requêtes GET et POST. encodeURIComponent, en revanche, permet d'encoder ces caractères.

Une exception URIError sera levée si l'élément à encoder est un seul demi-codet d'une paire de demi-codets (un élément d'une « surrogate pair ») :

// une paire de demi-codets : OK
console.log(encodeURI('\uD800\uDFFF'));

// un seul demi-codet (supérieur) : "URIError: malformed URI sequence"
console.log(encodeURI('\uD800'));

// un seul demi-codet (inférieur) : "URIError: malformed URI sequence"
console.log(encodeURI('\uDFFF')); 

Si on souhaite suivre la RFC 3986 qui concerne les URL et qui rend les crochets réservés (pour IPv6) (il ne faut donc plus encoder ces caractères lorsqu'ils font partie d'une URL (notamment pour la partie représentant l'hôte), on pourra utiliser le fragment de code suivant :

function fixedEncodeURI(str){
    return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}

Spécifications

Spécification État Commentaires
ECMAScript 3rd Edition (ECMA-262) Standard Définition initiale.
ECMAScript 5.1 (ECMA-262)
La définition de 'encodeURI' dans cette spécification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'encodeURI' dans cette spécification.
Standard  
ECMAScript 2017 Draft (ECMA-262)
La définition de 'encodeURI' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight, teoli, Jeremie, Delapouite, matteodelabre
 Dernière mise à jour par : SphinxKnight,