100 % local — vos données ne quittent jamais votre navigateur

Encodage URL — une valeur qui arrive entière

Encodez un texte pour une URL : l’espace devient %20 et chaque caractère réservé est échappé, la valeur arrive au serveur telle que vous l’avez écrite.

Instantané Privé Zéro cookie

Entrée Text

Sortie URL-encoded

Ce que fait cet outil

Le texte devient des octets UTF-8, et chaque octet hors de l’ensemble non réservé s’écrit avec un signe pourcent suivi de deux chiffres hexadécimaux. Ce qui passe intact : les lettres, les chiffres, et - . _ ~.

Tout le reste est échappé, y compris les caractères qui structurent une URL :

a b        →  a%20b
a+b&c=d    →  a%2Bb%26c%3Dd
café       →  caf%C3%A9
😀         →  %F0%9F%98%80

Encodage pourcent, pas encodage de formulaire

C’est la distinction à retenir, parce qu’elle corrompt des données en silence dans les deux sens.

L’encodage pourcent est celui d’un chemin d’URL et d’une chaîne de requête moderne. Une espace s’y écrit %20. Un signe plus y est un vrai plus, et se trouve lui-même échappé en %2B quand il apparaît dans une valeur.

L’encodage de formulaire — application/x-www-form-urlencoded, ce qu’envoie un formulaire HTML — écrit l’espace + à la place. C’est la convention plus ancienne, et elle est encore partout.

Cet outil applique la première règle, comme le font encodeURIComponent et decodeURIComponent dans un navigateur.

La conséquence au décodage

Une chaîne venue d’un formulaire, ou d’une chaîne de requête écrite dans ce style, gardera ici ses signes plus au lieu de les retransformer en espaces. a+b se décode en a+b.

C’est correct pour l’encodage pourcent, et faux par rapport à ce que vous vouliez probablement. Si l’entrée vient d’un formulaire, remplacez + par %20 avant de décoder, ou utilisez un décodeur de formulaire.

Un signe pourcent isolé, non suivi de deux chiffres hexadécimaux, lève une erreur plutôt qu’une supposition : 100% ne peut pas être décodé, et prétendre le contraire inventerait un octet.

Il encode une valeur, pas une URL

Donnez-lui une URL entière et il échappera aussi le :// et les séparateurs, ce qui n’est pas le but. Encodez chaque valeur séparément, puis assemblez l’URL autour.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi mon espace devient-il %20 et non un plus ?
Parce que ce sont deux règles distinctes. L’encodage pourcent, celui d’un chemin d’URL et d’une chaîne de requête moderne, écrit l’espace `%20`. Le signe plus relève de l’encodage de formulaire, celui qu’envoie un formulaire HTML.
Mon texte décodé garde ses signes plus. Est-ce un bug ?
Non, mais c’est le point à surveiller. Cet outil suit l’encodage pourcent, où `+` est un vrai plus. Si votre entrée vient d’un formulaire ou d’une vieille chaîne de requête, le plus y signifie une espace : remplacez `+` par `%20` avant de décoder.
Pourquoi ma barre oblique et mon esperluette sont-elles échappées ?
Parce que l’outil encode une **valeur**, pas une URL entière. Une barre oblique dans une valeur ressemblerait à un séparateur de chemin, une esperluette au début du paramètre suivant. Les échapper est ce qui garde la valeur d’un seul tenant.

Convertisseurs associés