utilduck
Home · Développeur · Encodeur / Décodeur URL

Encodeur / Décodeur URL

Collez du texte ou un composant d'URL, choisissez Encoder ou Décoder, voyez le résultat.

Résultat
-

À propos de l'encodage URL

Les URL ne peuvent contenir qu'un ensemble limité de caractères ASCII. Les caractères spéciaux comme les espaces, les esperluettes et les lettres non-ASCII doivent être encodées en pourcentage — remplacées par un signe pourcentage suivi de deux chiffres hexadécimaux. Un espace devient %20.

Cet outil utilise encodeURIComponent, qui encode tout sauf les lettres, chiffres et - _ . ! ~ * ( ). C'est la bonne fonction pour encoder une valeur de paramètre de requête ou un segment de chemin.

Comment encoder en pourcentage un composant d'URL ?

Pour encoder en pourcentage un texte destiné à une URL, remplacez chaque caractère hors de l'ensemble non réservé (lettres, chiffres et - _ . ! ~ * ' ( )) par un signe pourcentage suivi de deux chiffres hexadécimaux représentant la valeur en octets UTF-8 de ce caractère. Exemple : « hello world » devient « hello%20world » et « café » devient « caf%C3%A9 ».

Étapes pour encoder et décoder en pourcentage un composant d'URL

  1. Convertissez le texte d'entrée en octets UTF-8, car les caractères non-ASCII peuvent être représentés par plusieurs octets.
  2. Examinez chaque octet ; s'il correspond à un caractère non réservé (A-Z, a-z, 0-9, - _ . ! ~ * ' ( )), laissez-le inchangé.
  3. Pour tout autre octet, remplacez-le par un signe pourcentage suivi de sa valeur hexadécimale à deux chiffres en majuscules ; par exemple, un espace (0x20) devient %20.
  4. Rassemblez les résultats en une seule chaîne ; il s'agit de la représentation encodée en pourcentage, sûre pour une URL, du texte original.
  5. Pour décoder, recherchez % suivi de deux chiffres hexadécimaux, reconvertissez chacun en sa valeur d'octet, puis réassemblez les octets UTF-8 pour retrouver le texte original.

Règle de l'encodage en pourcentage

Octet réservé/non sûr -> %XX, où XX est la valeur de l'octet en deux chiffres hexadécimaux majuscules
  • Caractères non réservés = A-Z, a-z, 0-9, - _ . ! ~ * ' ( ) — jamais encodés
  • %XX = signe pourcentage plus deux chiffres hexadécimaux représentant un octet de l'encodage UTF-8 du caractère original

Exemples de résultats d'encodage

TexteEncodé
hello worldhello%20world
a=b&c=da%3Db%26c%3Dd
cafécaf%C3%A9
100% off!100%25%20off!
user@example.comuser%40example.com

Questions fréquentes

Pourquoi encodeURIComponent laisse-t-il ! ~ * ' ( ) non échappés ?

Ces caractères, avec les lettres, les chiffres et - _ ., sont définis comme sûrs pour apparaître directement dans un composant d'URI et n'y ont aucune signification particulière, si bien qu'encodeURIComponent en JavaScript les laisse tels quels. D'autres fonctions comme encodeURI réservent un ensemble de caractères différent et plus large, car elles sont destinées à encoder une URL complète plutôt qu'un seul composant.

Quelle est la différence entre encoder un composant d'URL et une URL entière ?

Encoder un seul composant (comme la valeur d'un paramètre de requête) doit échapper des caractères comme & et = afin qu'ils ne soient pas confondus avec la structure de l'URL. Encoder une URL entière doit laisser intacts les caractères structurels comme :, /, ? et &, afin que l'URL reste correctement interprétée, ce qui explique pourquoi encodeURIComponent et encodeURI se comportent différemment.

Pourquoi un espace devient-il parfois %20 et parfois + ?

%20 est l'encodage en pourcentage général d'un espace utilisé dans le chemin d'une URL et dans la sortie d'encodeURIComponent. Le signe + pour un espace est une convention héritée propre au format application/x-www-form-urlencoded utilisé dans les soumissions de formulaires HTML et les chaînes de requête, et non une règle générale d'encodage d'URL.

Pourquoi le décodage échoue-t-il avec une erreur sur certaines entrées ?

Le décodage échoue lorsqu'un % n'est pas suivi de deux chiffres hexadécimaux valides, ou lorsque les octets décodés ne forment pas un UTF-8 valide — par exemple en collant une séquence pourcentage incomplète comme %E2%9 sans son dernier octet. Vérifiez que l'entrée est un texte complet et correctement encodé en pourcentage.

Cet outil encode et décode une seule valeur textuelle à l'aide des fonctions encodeURIComponent/decodeURIComponent de JavaScript, conformes aux caractères non réservés de la RFC 3986 ; il n'analyse ni ne valide la structure d'une URL complète (schéma, hôte, chemin, requête) en tant que composants distincts.

Sources: RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax

Confidentialité et sécurité

  • Calcul dans le navigateur — Vos saisies sont calculées uniquement sur votre appareil et ne sont pas envoyées à un serveur utilduck.
  • Connexion chiffrée — Toutes les pages sont servies en HTTPS, personne sur le réseau ne peut lire leur contenu.
  • Aucun partage avec des tiers — Vos saisies ne sont transmises ni aux services d'analyse ni aux régies publicitaires.
  • Aucun enregistrement — Les résultats ne sont enregistrés sur aucun serveur et aucun compte n'est requis.

Dernière mise à jour: 2026-08-17