Les caractères sont convertis en UTF-8 puis écrits sous la forme %XX. Aucune donnée n'est envoyée.
🌐 Web et technique
Encodez ou décodez une URL ou un paramètre, avec le choix entre encodeURIComponent, encodeURI et le format des formulaires.
Les caractères sont convertis en UTF-8 puis écrits sous la forme %XX. Aucune donnée n'est envoyée.
L'encodage en pourcent, défini par la RFC 3986, permet d'écrire dans une adresse web des caractères qui n'y sont pas autorisés ou qui ont un rôle réservé : espace, accents, esperluette, point d'interrogation, dièse. Chaque octet du texte UTF-8 est écrit sous la forme d'un signe pourcent suivi de deux chiffres hexadécimaux. Une espace devient %20 et la lettre é devient %C3%A9.
Trois variantes sont proposées. encodeURIComponent convient à une valeur isolée, par exemple un paramètre de requête, car il encode aussi les séparateurs comme la barre oblique, le deux-points ou l'esperluette. encodeURI protège une adresse complète en laissant intacts ces séparateurs. Le format de formulaire (application/x-www-form-urlencoded) remplace l'espace par un signe plus, comme le font les formulaires HTML en méthode GET.
Le mode de décodage convertit les séquences %XX vers le texte d'origine et affiche, lorsque l'entrée est une adresse complète, ses différentes parties ainsi que la liste des paramètres décodés. C'est pratique pour lire un lien de suivi ou déboguer une requête.
encodeURI conserve les caractères qui structurent une adresse (: / ? # & =), à utiliser sur une URL complète. encodeURIComponent les encode aussi, à utiliser sur une valeur insérée dans une URL.
Le format des formulaires HTML utilise le signe plus pour l'espace dans la requête. Partout ailleurs dans une URL, c'est %20 qui est la forme correcte.
Un signe pourcent doit être suivi de deux chiffres hexadécimaux, et les octets décodés doivent former de l'UTF-8 valide. Un pourcent isolé, comme dans une remise de 50 %, doit être écrit %25.