Encodeur et décodeur d'URL
Encodez et décodez des URL en ligne : paramètres de requête, adresses complètes, séquences %XX et signe + en espace. Tout reste dans votre navigateur.
Comment utiliser l’encodeur et décodeur d’URL
- Choisissez Encoder pour rendre un texte compatible avec les URL, ou Décoder pour retrouver les caractères lisibles d’un texte encodé.
- Pour l’encodage, sélectionnez un mode : Composant pour une seule valeur (paramètre de requête, segment de chemin) ou URL complète pour encoder une adresse entière en préservant sa structure.
- Pour décoder des données issues d’un formulaire HTML ou d’une chaîne de requête, activez Traiter + comme une espace afin que les signes
+redeviennent des espaces. - Collez votre texte et copiez le résultat. Si une séquence est mal formée, l’outil affiche une erreur au lieu de deviner.
Qu’est-ce que l’encodage d’URL ?
Une URL ne peut contenir qu’un ensemble restreint de caractères ASCII. Certains, comme /, ?, #, & et =, sont réservés, car ils séparent les différentes parties de l’adresse : le chemin, la chaîne de requête et le fragment. D’autres, comme les espaces, les guillemets, les lettres accentuées ou les émojis, sont tout simplement interdits. L’encodage d’URL, aussi appelé encodage pourcent (percent-encoding), règle ces deux problèmes en remplaçant chaque octet gênant par un % suivi de deux chiffres hexadécimaux.
Le texte est d’abord converti en octets UTF-8, puis chaque octet est encodé séparément. Une espace devient %20, une esperluette %26, la lettre é (deux octets en UTF-8) devient %C3%A9, et l’émoji 😀 (quatre octets) devient %F0%9F%98%80. Les caractères non réservés, c’est-à-dire les lettres, les chiffres et - _ . ~, n’ont jamais besoin d’être encodés.
Mode composant ou mode URL complète ?
Bien choisir le mode est la décision la plus importante, et une erreur à ce niveau est une source classique de bogues.
Le mode composant fonctionne comme la fonction JavaScript encodeURIComponent. Il encode tous les caractères réservés, si bien que le résultat peut être placé sans risque à l’intérieur d’une partie de l’URL. Utilisez-le pour les valeurs de paramètres, les segments de chemin ou tout texte saisi par un utilisateur. Par exemple, la recherche rock & roll devient rock%20%26%20roll. Sans encodage de l’esperluette, le serveur interpréterait roll comme le début d’un nouveau paramètre.
Le mode URL complète fonctionne comme encodeURI. Il considère que l’entrée est déjà une adresse complète et conserve les caractères qui lui donnent sa structure, comme : / ? # & et =, tout en encodant les espaces et les caractères non ASCII. Il permet par exemple de transformer https://example.com/café menu?q=thé en https://example.com/caf%C3%A9%20menu?q=th%C3%A9. Ne l’utilisez pas pour des valeurs isolées : une esperluette dans une valeur resterait intacte et casserait la chaîne de requête.
Une bonne règle : construisez vos URL morceau par morceau, encodez chaque valeur en mode composant, et réservez le mode URL complète aux adresses que vous recevez déjà assemblées.
Le signe + et l’encodage des formulaires
Les formulaires HTML envoyés au format application/x-www-form-urlencoded encodent les espaces en + plutôt qu’en %20. C’est pour cela que les URL de recherche ressemblent souvent à ?q=bonjour+tout+le+monde. Le décodage pourcent standard laisse le + tel quel, puisque dans un chemin un plus reste un plus. Pour décoder une chaîne de requête ou des données de formulaire, activez Traiter + comme une espace. Laissez l’option désactivée pour les chemins et pour les valeurs où le + compte vraiment, comme un numéro de téléphone international ou des données Base64. Un vrai signe plus dans un formulaire est transmis sous la forme %2B : il est donc décodé correctement dans les deux cas.
Confidentialité
L’encodage et le décodage s’exécutent entièrement dans votre navigateur. Rien de ce que vous collez, y compris des URL pouvant contenir des jetons, des identifiants de session ou des données personnelles, n’est envoyé à un serveur ni conservé.
Questions fréquentes
Pourquoi le décodage échoue-t-il avec une erreur de séquence mal formée ?
Un % doit être suivi d’exactement deux chiffres hexadécimaux, et les octets obtenus doivent former de l’UTF-8 valide. Des chaînes comme 100%, %G1 ou une séquence tronquée comme %E2%82 ne peuvent pas être décodées de façon fiable ; l’outil signale donc le problème plutôt que de produire un texte erroné. Pour écrire un vrai signe pourcentage, encodez-le en %25.
Quelle différence entre %20 et + ?
Les deux peuvent représenter une espace, mais pas dans le même contexte. %20 est valable partout dans une URL. Le + ne signifie une espace que dans les chaînes de requête encodées à la manière d’un formulaire ; ailleurs, c’est un simple signe plus.
Faut-il encoder une URL entière en mode composant ?
Seulement si cette URL est elle-même une valeur à l’intérieur d’une autre URL, par exemple dans un paramètre redirect=. Dans ce cas, le mode composant est exactement ce qu’il faut : https://a.com/?x=1 devient https%3A%2F%2Fa.com%2F%3Fx%3D1.
Pourquoi mon texte est-il encodé deux fois ?
Le double encodage se produit quand on encode un texte déjà encodé : %20 devient alors %2520. Décodez une fois pour vérifier, et assurez-vous que chaque valeur n’est encodée qu’au moment où elle est insérée dans l’URL.
L'encodage d'URL protège-t-il les données ?
Non. L’encodage pourcent est entièrement réversible et n’offre aucune sécurité. Les valeurs sensibles placées dans une URL peuvent se retrouver dans l’historique du navigateur et les journaux des serveurs : mieux vaut ne jamais y mettre de secrets.
Outils similaires
- Encodeur et décodeur Base64 Encodez et décodez du texte en Base64 en ligne, avec prise en charge complète de l'UTF-8 et option base64url. Tout se fait dans votre navigateur.
- Formateur et validateur JSON Formateur et validateur JSON gratuit qui indente, minifie et vérifie votre JSON dans le navigateur, avec erreurs signalées par ligne et colonne.