Encodeur / décodeur URL

Encode ou décode URL et texte avec percent encoding.

Le formulaire interactif est prêt lorsque JavaScript est activé.

Mode d’emploi

L’encodage pourcent remplace les caractères qui ont un sens dans une URL, comme les espaces, &, ?, # et les lettres accentuées, par un % suivi de leurs valeurs d’octet, afin que le texte résiste au copier-coller, à la journalisation et à l’analyse. Collez du texte et choisissez « Encoder » ou « Décoder » ; le résultat s’affiche en dessous, avec un bouton « Copier ».

« Encoder » traite tout ce que vous collez comme une seule valeur, de la façon dont doit être encodé un paramètre de requête ou un segment de chemin isolé. Seuls les lettres, les chiffres et - _ . ! ~ * ' ( ) restent tels quels ; tout le reste est encodé, y compris : / ? # & et =. C’est exactement ce qu’il faut pour une valeur, mais ce n’est pas ainsi qu’on encode une adresse entière : https://example.com/a b devient https%3A%2F%2Fexample.com%2Fa%20b, qui ne fonctionne plus comme lien. Encodez les parties qui le nécessitent et conservez les séparateurs.

Les caractères qui sortent de l’ASCII simple sont d’abord convertis en UTF-8, puis encodés octet par octet : é devient ainsi %C3%A9, et un emoji comme 😀 devient quatre codes % (%F0%9F%98%80).

« Décoder » reconvertit les codes % en texte. Un + reste un +, car un plus ne signifie un espace que dans les données encodées par un formulaire ; et un % qui n’est pas suivi de deux chiffres hexadécimaux valides, comme dans 100%, ne peut pas être décodé et est signalé comme non valide. Tout s’exécute dans votre navigateur.

Exemple

Les espaces deviennent %20 et les caractères réservés sont encodés avec des pourcentages. Le décodage restitue le texte initial.

  • hello worldhello%20world
  • a&b=c comme une seule valeura%26b%3Dc
  • cafécaf%C3%A9
  • https://example.com/?q=1https%3A%2F%2Fexample.com%2F%3Fq%3D1 : correct comme valeur à l’intérieur d’une autre URL, incorrect comme lien autonome.
  • a+b%20c → Décodera+b c : le %20 devient un espace, le + reste tel quel.

Questions fréquentes

Pourquoi vois-je parfois + au lieu de %20 ?

Un plus ne signifie un espace que dans le format form-urlencoded qu’utilisent les envois de formulaires HTML. Ailleurs dans une URL, un plus est un plus littéral : c’est pourquoi cet outil encode un espace en %20 et laisse un + inchangé lors du décodage.

Pourquoi une lettre accentuée devient-elle six caractères ?

Elle est d’abord convertie en UTF-8, puis encodée octet par octet. La lettre é occupe deux octets ; elle devient donc %C3%A9.

Pourquoi le décodage échoue-t-il ?

Généralement parce que le texte contient un % qui ne fait pas partie d’un caractère encodé, comme dans 100%, ou une séquence qui n’est pas de l’UTF-8 valide. Encodez d’abord le % isolé en %25.

Faut-il encoder une URL entière avant de la partager ?

Non. Une URL qui fonctionne déjà doit être partagée telle quelle ; l’encoder à nouveau transforme ses séparateurs en codes et la rend inutilisable. Seules les valeurs placées à l’intérieur d’une URL doivent être encodées.

Outils associés