Aller au contenu
Case Converter Online
fr

Encoder et décoder une URL

Encodez un texte en pourcent pour qu'il passe sans risque dans un lien, ou décodez une URL encodée en texte lisible. Choisissez entre une valeur seule, une URL complète ou des données de formulaire.

Fonctionne dans les deux sens. Au décodage, les séquences % incorrectes sont laissées telles quelles.

Ce qu’est l’encodage d’URL

Une adresse web ne peut contenir qu’un petit ensemble de caractères : lettres, chiffres et quelques symboles comme -, ., _ et ~. D’autres caractères ont un rôle spécial. ? commence la chaîne de requête, & sépare les paramètres, = relie un nom à une valeur et # commence un fragment. Les espaces et les lettres hors de l’alphabet anglais, comme les lettres accentuées du français, ne sont pas autorisés du tout.

L’encodage d’URL, aussi appelé encodage pourcent, règle ce problème. Chaque caractère interdit est converti en octets UTF-8, et chaque octet s’écrit % suivi de deux chiffres hexadécimaux. Une espace devient %20, & devient %26 et é devient %C3%A9.

Comment utiliser l’encodeur d’URL

Encoder. Tapez ou collez un texte dans Texte brut. La version encodée apparaît dans URL encodée. Appuyez sur Copier pour la récupérer.

Décoder. Collez un texte encodé dans URL encodée. Le texte lisible apparaît à gauche.

Choisissez ce que vous encodez avec le menu sous les zones :

  • Une valeur ou une partie d’URL (encodeURIComponent) est le bon choix la plupart du temps. Il encode tout sauf les lettres, les chiffres et - _ . ~. Utilisez-le pour les termes de recherche, les valeurs de paramètres et les segments de chemin.
  • Une URL complète, garder : / ? & = (encodeURI) laisse intacte la structure de l’adresse et n’encode que les espaces, les lettres non anglaises et les caractères du même genre.
  • Données de formulaire, espaces en + (x-www-form-urlencoded) correspond à ce qu’envoie un navigateur quand vous validez un formulaire HTML. Les espaces deviennent +, et au décodage, + redevient une espace.

Effacer vide les deux zones.

Comment ça marche

Le texte est d’abord transformé en octets UTF-8. Chaque octet non autorisé est remplacé par % et sa valeur hexadécimale. La lettre é occupe deux octets en UTF-8, elle devient donc deux séquences : %C3%A9. Un emoji occupe quatre octets, il devient quatre séquences.

En mode composant, cet outil va un peu plus loin que la fonction de base du navigateur. Il encode aussi ! ' ( ) *, selon la RFC 3986. Ces caractères sont techniquement autorisés, mais ont posé problème à certains serveurs et clients e-mail. Pour le français, c’est utile : l’apostrophe de « l’été » est encodée en %27.

Le décodage fonctionne à l’inverse. Les suites de séquences %XX sont rassemblées en octets et lues en UTF-8.

Exemples

Saisie Composant URL complète Formulaire
hello world hello%20world hello%20world hello+world
Tom & Jerry Tom%20%26%20Jerry Tom%20&%20Jerry Tom+%26+Jerry
a+b=c a%2Bb%3Dc a+b=c a%2Bb%3Dc
50% off 50%25%20off 50%25%20off 50%25+off
café caf%C3%A9 caf%C3%A9 caf%C3%A9
it's (ok)*! it%27s%20%28ok%29%2A%21 it's%20(ok)*! it%27s+%28ok%29%2A%21
Crème brûlée & café Cr%C3%A8me%20br%C3%BBl%C3%A9e%20%26%20caf%C3%A9 Cr%C3%A8me%20br%C3%BBl%C3%A9e%20&%20caf%C3%A9 Cr%C3%A8me+br%C3%BBl%C3%A9e+%26+caf%C3%A9

Une adresse complète montre le mieux la différence. https://example.com/a b?q=1&r=é en mode URL complète devient https://example.com/a%20b?q=1&r=%C3%A9, qui fonctionne toujours comme lien. En mode composant, le même texte devient https%3A%2F%2Fexample.com%2Fa%20b%3Fq%3D1%26r%3D%C3%A9, ce qui n’est correct que si toute l’adresse est elle-même la valeur d’un paramètre, comme une cible de redirection.

Un exemple français en mode URL complète : https://exemple.fr/recherche?q=élève devient https://exemple.fr/recherche?q=%C3%A9l%C3%A8ve. Les navigateurs affichent souvent l’adresse avec les accents dans la barre d’adresse, mais c’est bien cette forme encodée qui circule.

Conseils et limites

  • Encodez les valeurs, pas les liens entiers. Construisez d’abord le lien, puis encodez seulement les morceaux que vous insérez.
  • Attention au double encodage. Si vous voyez %2520, le texte a été encodé deux fois. Décodez-le une fois.
  • Le + n’est pas toujours une espace. Il ne signifie espace que dans les données de formulaire. Dans un chemin, + est un simple signe plus. Choisissez le mode correspondant avant de décoder.
  • Encoder n’est pas cacher. N’importe qui peut lire un texte encodé. Ne mettez pas de mots de passe dans les liens.
  • La casse ne compte pas dans les séquences. %c3%a9 et %C3%A9 veulent dire la même chose. Les majuscules sont l’usage courant.
  • Pour une URL lisible, plutôt que d’encoder des accents dans un chemin, retirez-les : le générateur de slug transforme « Été à Noël » en ete-a-noel.

Autres méthodes

JavaScript. encodeURIComponent('Tom & Jerry') renvoie Tom%20%26%20Jerry. Utilisez decodeURIComponent pour l’inverse. Notez qu’il lève une erreur sur une séquence cassée comme %zz, alors que cet outil la laisse en place.

Python. urllib.parse.quote('Tom & Jerry', safe='') renvoie Tom%20%26%20Jerry, et urllib.parse.quote_plus renvoie Tom+%26+Jerry.

Excel. =URLENCODAGE(A1) dans Excel en français (=ENCODEURL(A1) en anglais) encode en pourcent le texte de la cellule A1 (Excel 2013 et versions suivantes sous Windows).

Ligne de commande. curl --data-urlencode "q=Tom & Jerry" encode une valeur de formulaire au moment de l’envoyer.

Outils associés

Vous créez des liens de campagne ? Le générateur UTM encode chaque balise pour vous. Pour transformer un titre en chemin propre, utilisez le générateur de slug. Pour des données binaires dans une URL, l’encodage Base64 avec l’option sûre pour les URL convient souvent mieux.

Encodeur d'URL : questions fréquentes

Que signifie %20 dans une URL ?

%20 est une espace encodée. Une espace n'est pas autorisée dans une adresse web, elle s'écrit donc avec un signe pourcent suivi de sa valeur d'octet en hexadécimal, 20. Dans les données de formulaire, une espace s'écrit souvent + à la place.

Faut-il encoder une URL entière ou seulement une partie ?

En général, seulement la partie que vous insérez, comme un terme de recherche ou la valeur d'un paramètre. Encoder toute une URL comme un composant encode aussi les caractères : et /, ce qui casse le lien. Utilisez le mode URL complète seulement pour une adresse complète qui contient des espaces ou des lettres accentuées.

Pourquoi mon texte affiche-t-il %25 après l'encodage ?

%25 est un signe pourcent encodé. Si vous encodez un texte déjà encodé, chaque % devient %25. Par exemple, a%20b encodé de nouveau devient a%2520b. Décodez d'abord, puis encodez une seule fois.

Peut-il décoder une URL cassée ou à moitié encodée ?

Oui. Les séquences valides comme %C3%A9 sont décodées et tout ce qui n'est pas une séquence valide, comme un signe % isolé, est laissé tel quel. Le texte entier n'échoue jamais à cause d'un seul mauvais caractère.

Plus d'outils code et données

Voir tous les outils