Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La fonction encodeURIComponent() encode un URI en remplaçant chaque occurrence de certains caractères par une, deux, trois ou quatre séquences d'échappement représentant l'encodage UTF-8 du caractère (il n'y aura quatre séquences d'échappement que pour les caractères composés de deux demi-codets). Par rapport à encodeURI(), cette fonction encode davantage de caractères, y compris ceux qui font partie de la syntaxe de l'URI.
Une chaîne de caractères à encoder comme composant d'URI (un chemin, une chaîne de requête, un fragment, etc.). Les autres valeurs sont contrainte en chaînes de caractères.
Une nouvelle chaîne de caractères qui représente le uriComponent fourni, encodé comme composant d'URI.
Levée si uriComponent contient un codet suppléant isolé.
encodeURIComponent() est une propriété de fonction de l'objet global.
encodeURIComponent() utilise le même algorithme d'encodage que celui décrit dans encodeURI(). Il échappe tous les caractères sauf :
A—Z a—z 0—9 - _ . ! ~ * ' ( )Par rapport à encodeURI(), encodeURIComponent() échappe un ensemble plus large de caractères. Utiliser encodeURIComponent() sur les champs saisis par l'utilisateur·ice dans les formulaires envoyés au serveur — cela encode les symboles & qui peuvent être générés par inadvertance lors de la saisie de données pour la références de caractères ou d'autres caractères qui nécessitent un encodage/décodage. Par exemple, si un·e utilisateur·ice écrit Jack & Jill, sans encodeURIComponent(), l'esperluette peut être interprétée par le serveur comme le début d'un nouveau champ et compromettre l'intégrité des données.
Pour application/x-www-form-urlencoded (angl.), les espaces doivent être remplacés par +, il peut donc être utile de suivre un remplacement encodeURIComponent() par un remplacement supplémentaire de %20 par +.
L'exemple suivant fournit l'encodage spécial requis dans les paramètres d'en-tête de réponse du serveur UTF-8 Content-Disposition et Link (par exemple, des noms de fichiers en UTF-8) :
La RFC3986 (angl.) plus récente réserve !, ', (, ) et *, même si ces caractères n'ont pas d'usage formalisé de délimitation d'URI. La fonction suivante encode une chaîne de caractères pour le format de composant d'URL conforme à RFC3986. Elle encode également [ et ], qui font partie de la syntaxe URI IPv6. Une implémentation conforme à RFC3986 de encodeURI ne doit pas les échapper, ce qui est démontré dans l'exemple encodeURI().
Une URIError sera levée si vous tentez d'encoder un codet suppléant qui ne fait pas partie d'une paire haut-bas. Par exemple :
Vous pouvez utiliser String.prototype.toWellFormed(), qui remplace les codets suppléants isolés par le caractère de remplacement Unicode (U+FFFD), pour éviter cette erreur. Vous pouvez aussi utiliser String.prototype.isWellFormed() pour vérifier si une chaîne de caractères contient des codets suppléants isolés avant de la passer à encodeURIComponent().
| ECMAScript® 2027 Language Specification # sec-encodeuricomponent-uricomponent |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 21 févr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.