À propos de cet outil
L'encodage d'URL (aussi appelé encodage en pourcentage) remplace les caractères qui ont une signification particulière ou qui ne sont pas autorisés dans une URL par un signe pourcentage suivi de leur valeur d'octet hexadécimale — une espace devient %20, une esperluette devient %26, et ainsi de suite. JavaScript propose deux variantes : encodeURIComponent échappe presque tout, y compris les délimiteurs réservés comme &, =, ?, et /, ce qui le rend adapté à une valeur unique telle qu'un paramètre de chaîne de requête, tandis que encodeURI laisse intacts les caractères structurels d'une URL complète afin que l'adresse reste utilisable.
Utilisez-le pour insérer en toute sécurité une valeur dans une chaîne de requête, déboguer un lien dont les caractères spéciaux ou Unicode ont été altérés, ou relire ce que contient réellement une URL de redirection ou de suivi encodée. Passez en mode Decode pour reconvertir %20 et consorts en texte lisible, choisissez la portée Component ou Full URL selon la façon dont la chaîne a été produite, et activez "+ as space" lorsque vous décodez des chaînes de requête de type formulaire où les espaces ont été envoyées sous forme de signes plus.
encodeURIComponent échappe les délimiteurs réservés &, =, ?, et / tandis qu'encodeURI les laisse intacts — utilisez Component pour une valeur unique et Full URL uniquement pour une adresse complète.
Questions fréquentes
Quelle est la différence entre encodeURIComponent et encodeURI ?
encodeURIComponent échappe les caractères d'URL réservés comme &, =, ?, et /, il est donc destiné à une valeur unique telle qu'un paramètre de chaîne de requête. encodeURI préserve ces caractères structurels, il est donc destiné à encoder une URL complète sans la casser.
Pourquoi + signifie-t-il parfois une espace dans une URL ?
Dans les chaînes de requête application/x-www-form-urlencoded (la façon dont les formulaires HTML soumettent les données), les espaces sont encodées en + plutôt qu'en %20. Les décodeurs d'URL standard ne reconvertissent pas + en espace, activez donc l'option "+ as space" lorsque vous décodez des chaînes de requête de type formulaire.
Que signifie "Malformed percent-encoding" lors du décodage ?
Cela signifie que l'entrée contient un % qui n'est pas suivi de deux chiffres hexadécimaux valides, ou une séquence multi-octets incomplète telle que %E0%A4%A. Le décodeur ne peut pas interpréter ces octets, il signale donc une erreur au lieu de renvoyer un texte partiel et corrompu.