tigtools

Encodeur / décodeur d’URL

Encodez du texte pour l’utiliser dans une URL ou transformez les échappements de type %20 en texte lisible. Choisissez Composant pour une seule valeur ou URL complète pour une adresse entière.

Fonctionne dans votre navigateur Sans inscription

Opération
Que souhaitez-vous encoder ?

Le mode Composant (encodeURIComponent) échappe tous les caractères, sauf les lettres, les chiffres et - _ . ! ~ * ' ( ). Utilisez-le pour une valeur de paramètre, un champ de formulaire ou un segment de chemin.

Mode d’emploi

  1. Choisissez Encoder ou Décoder.
  2. Choisissez Composant pour une seule valeur (par exemple, un paramètre de requête) ou URL complète pour une adresse entière.
  3. Saisissez ou collez votre texte. Le résultat s’affiche instantanément à droite (ou en dessous sur téléphone).
  4. Copiez le résultat ou utilisez « Utiliser le résultat comme entrée » pour inverser l’opération et vérifier le résultat.

Fonctionnement

Les URL ne peuvent contenir qu’un nombre limité de caractères ASCII. Tout le reste, notamment les espaces, les lettres accentuées et les emoji, est représenté par des échappements en pourcentage : le caractère est converti en octets UTF-8, puis chaque octet est remplacé par % suivi de deux chiffres hexadécimaux. Un espace devient %20, é devient %C3%A9 et € devient %E2%82%AC.

Le mode Composant utilise encodeURIComponent et decodeURIComponent de JavaScript. Il échappe tous les caractères ayant une signification particulière dans une URL, notamment / ? # & = + : et @, afin que le résultat puisse être inséré sans risque dans une valeur de requête ou un segment de chemin. Seuls A–Z, a–z, 0–9 et - _ . ! ~ * ' ( ) restent inchangés.

Le mode URL complète utilise encodeURI et decodeURI. Il suppose que l’entrée est déjà une URL complète et laisse inchangés les caractères réservés ; , / ? : @ & = + $ # afin que l’adresse reste fonctionnelle. Lors du décodage, decodeURI laisse également tels quels les échappements de ces caractères réservés : %2F reste %2F, car le remplacer par / modifierait le sens de l’URL.

L’option Données de formulaire suit le format application/x-www-form-urlencoded, utilisé par les navigateurs lors de l’envoi de formulaires HTML : un espace est représenté par + au lieu de %20. Avec cette option, le décodage transforme chaque + en espace ; un vrai signe plus doit donc être écrit %2B.

Les entrées non valides ne sont jamais supprimées. Si un % n’est pas suivi de deux chiffres hexadécimaux, ou si une suite d’échappements ne forme pas un UTF-8 valide, l’outil indique où se trouve le problème et conserve votre texte afin que vous puissiez le corriger.

Exemples

Insérer une valeur dans une chaîne de requête

Pour rechercher « Rock & Roll » sur https://example.com/search?q=…, encodez uniquement la valeur en mode Composant : Rock%20%26%20Roll. Sans encodage, le & mettrait fin au paramètre q et en démarrerait un nouveau nommé « Roll ».

Corriger une URL contenant des espaces et des accents

En mode URL complète, https://example.com/menu/crème brûlée.html devient https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. Les barres obliques et les deux-points restent inchangés, le lien continue donc de fonctionner.

Lire des données de formulaire enregistrées

Un journal du serveur affiche name=Jane+Doe&city=S%C3%A3o+Paulo. Décodez cette valeur en mode Composant en activant « Traiter + comme un espace » pour obtenir name=Jane Doe&city=São Paulo.

Foire aux questions

Quelle est la différence entre encodeURI et encodeURIComponent ?

encodeURIComponent échappe les caractères qui séparent les parties d’une URL (/ ? # & = + : @ et autres) ; il est donc destiné à une partie d’URL. encodeURI conserve ces caractères et sert donc à encoder une URL complète. Utiliser encodeURI pour une valeur de requête est une erreur courante : un & ou un = dans la valeur ne serait pas échappé et casserait la chaîne de requête.

Faut-il écrire un espace sous la forme %20 ou + ?

Dans le chemin d’une URL, un espace s’écrit toujours %20. Dans une chaîne de requête, les deux formes existent : %20 est valide partout, tandis que + représente un espace uniquement dans les données encodées au format formulaire (application/x-www-form-urlencoded), utilisé par les formulaires HTML et de nombreux frameworks serveur pour lire les chaînes de requête. En cas de doute, utilisez %20.

Pourquoi une erreur s’affiche-t-elle lors du décodage ?

Le décodage échoue lorsqu’un signe % n’est pas suivi de deux chiffres hexadécimaux (par exemple « 50% off »), ou lorsque les octets échappés ne forment pas un UTF-8 valide. Cela signifie généralement que le texte a été encodé avec un ancien jeu de caractères, comme Latin-1 (é écrit %E9 au lieu de %C3%A9). Le message d’erreur indique la position du problème.

Pourquoi %2F n’a-t-il pas été remplacé par une barre oblique en mode URL complète ?

decodeURI conserve volontairement les échappements des caractères réservés comme / ? # & et =, car les décoder pourrait modifier le découpage de l’URL. Utilisez le mode Composant pour décoder tous les échappements.

Quels caractères ne sont jamais encodés ?

Les deux modes laissent inchangés A–Z, a–z, 0–9 et - _ . ! ~ * ' ( ). Le mode URL complète laisse également inchangés ; , / ? : @ & = + $ et #.

Confidentialité

L’encodage et le décodage s’effectuent entièrement dans votre navigateur, à l’aide des fonctions JavaScript intégrées. Votre texte et vos URL ne sont ni envoyés, ni stockés, ni inclus dans les statistiques.