Outils pour Développeurs

Encodage URL

Encodez du texte en pourcentage pour qu'il soit utilisable sans risque dans une URL.

Évaluez cet outil

Comment utiliser Encodage URL

  1. Saisissez ou collez votre texte.
  2. Copiez le résultat encodé pour l'URL.

À propos de Encodage URL

L'encodage en pourcentage est ce qui permet à une URL de transporter des caractères qui, autrement, la casseraient ou en changeraient le sens. Chaque octet à risque est écrit sous la forme % suivi de deux chiffres hexadécimaux — un espace devient %20, une esperluette devient %26. Cet outil applique un encodage de composant : il traite votre saisie comme une valeur unique destinée à une URL, et non comme une URL à part entière.

Cette distinction compte plus qu'il n'y paraît. L'encodage de composant échappe aussi les délimiteurs réservés — &, =, ?, #, / et : sont tous encodés — car à l'intérieur d'une valeur de paramètre, ces caractères ne doivent jamais être confondus avec de la structure. Collez donc ici une seule valeur, pas une adresse complète : une URL entière reviendrait avec ses :// et ses barres obliques échappés, ce qui n'est pas le résultat souhaité. Restent inchangés les lettres, les chiffres et une poignée de signes sûrs : - _ . ! ~ * ' ( ). Le texte non-ASCII est d'abord converti en octets UTF-8, si bien qu'une lettre accentuée devient deux séquences d'échappement.

Un piège classique mérite d'être signalé : un espace s'encode en %20, mais les chaînes de requête interprètent aussi historiquement + comme un espace, une convention héritée de l'envoi de formulaires HTML. Les deux coexistent, et un décodeur qui ne connaît que l'une des deux conventions se trompera. Inversez le processus avec le décodeur URL, ou décomposez une adresse complète en ses différentes parties avec l'analyseur d'URL. Tout s'exécute dans votre navigateur.

Questions fréquentes

Puis-je coller une URL entière ?

Vous le pouvez, mais le résultat ne sera pas une URL fonctionnelle : les ://, les barres obliques et le ? seraient tous échappés, car cet outil encode votre saisie comme une valeur unique. N'encodez que la valeur du paramètre que vous insérez, et laissez intacte la structure de l'URL qui l'entoure.

Un espace doit-il être %20 ou + ?

Cet outil produit toujours %20, qui est valide partout dans une URL. La convention du + ne signifie un espace que dans les chaînes de requête et les corps encodés en formulaire ; il s'agit d'une convention historique distincte. Si votre destinataire attend un +, remplacez %20 après coup — mais uniquement dans la chaîne de requête.

Quels caractères sont laissés tels quels ?

Les lettres, les chiffres et les signes - _ . ! ~ * ' ( ). Tout le reste, y compris les délimiteurs réservés & = ? # / et :, est encodé en pourcentage. C'est ce qui rend le résultat sûr à insérer dans une valeur de paramètre.

Pourquoi un caractère s'est-il transformé en plusieurs séquences % ?

Parce que l'encodage en pourcentage agit sur des octets, pas sur des caractères, et le texte est d'abord encodé en UTF-8. Un caractère comme é fait deux octets, il devient donc %C3%A9. Les emojis font quatre octets et deviennent quatre séquences d'échappement.

Que se passe-t-il si j'encode un texte déjà encodé ?

Vous obtenez un double encodage : le caractère % lui-même doit être échappé, donc %20 devient %2520. C'est un bug courant lorsqu'une valeur passe par deux couches qui l'encodent chacune. N'encodez qu'une seule fois.