🌐 Web et technique

Encoder et décoder une URL

Encodez ou décodez une URL ou un paramètre, avec le choix entre encodeURIComponent, encodeURI et le format des formulaires.

Jimenez JulienPar , éditeur de Floobits.com · mis à jour le

Les caractères sont convertis en UTF-8 puis écrits sous la forme %XX. Aucune donnée n'est envoyée.

À propos de cet outil

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.

Questions fréquentes

Quelle différence entre encodeURI et encodeURIComponent ?

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.

Pourquoi l'espace devient-elle parfois + et parfois %20 ?

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.

Pourquoi le décodage signale-t-il une séquence invalide ?

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.

Autres outils : Web et technique