mozilla
Vos résultats de recherche

    encodeURI()

    La méthode 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.

    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 Statut Commentaires
    Troisième édition d'ECMAScript. Standard Définition standard.
    ECMAScript 5.1 (ECMA-262)
    La définition de 'encodeURI' dans cette spécification.
    Standard  
    ECMAScript 6 (ECMA-262)
    La définition de 'encodeURI' dans cette spécification.
    En cours de validation comme recommandation  

    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

    Contributors to this page: Delapouite, MattouFP, teoli, SphinxKnight, Jeremie
    Dernière mise à jour par : SphinxKnight,