Menu
Français

Encodeur / Décodeur d'URL

Encodez et décodez les composants d'URL en toute sécurité.

Dernière mise à jour

Mode
Portée
DécodéCollez du texte pour commencer
Encodé
La sortie encodée ou décodée apparaît ici — Unicode pris en charge.

C'est quoi un encodeur d'URL ?

Un encodeur d'URL (aussi appelé encodeur en pourcentage ou encodeur d'URI) remplace les caractères réservés ou non autorisés dans une URL par un % suivi de deux chiffres hexadécimaux. On y a recours quand on construit des query strings, qu'on échappe des segments de chemin, qu'on partage des URL contenant des espaces ou des caractères non-ASCII, ou qu'on debugge des redirections.

Les URL n'acceptent qu'un petit jeu de caractères ASCII. Tout ce qui sort de ce jeu — espaces, accents, emojis, ou symboles réservés comme ?, #, &, = quand ils servent de données — doit être encodé en pourcentage pour arriver intact du navigateur jusqu'au serveur.

JavaScript fournit deux fonctions d'encodage : encodeURI (qui préserve la structure de l'URL : /, ?, #, &) et encodeURIComponent (qui encode tous les caractères réservés). Utilisez encodeURIComponent pour les *valeurs* que vous insérez dans une query string, et encodeURI pour des *URL entières* que vous voulez garder fonctionnelles.

Ce que vous allez apprendre en encodant des URL

  • Le percent-encoding remplace un seul octet par un % suivi de deux chiffres hexadécimaux — par exemple, un espace devient %20.
  • Les caractères réservés (: / ? # & = +) ont une signification dans la structure d'une URL. Ils doivent être encodés quand ils servent de données et non de séparateurs.
  • Le texte non-ASCII (accents, emojis, cyrillique, CJK) est d'abord converti en octets UTF-8, puis chaque octet est encodé en pourcentage.

Encoder et décoder une URL pas à pas

  1. Choisissez le sens

    Cliquez sur Encoder si vous avez du texte brut à rendre compatible avec une URL. Cliquez sur Décoder si vous avez une chaîne encodée en % et que vous voulez retrouver le texte d'origine.

  2. Choisissez le mode d'encodage

    Sélectionnez encodeURIComponent (encode tous les caractères réservés) pour les valeurs d'une query string ; sélectionnez encodeURI (préserve la structure) pour une URL complète.

  3. Collez votre texte

    Collez le texte brut ou l'URL encodée. Le multi-ligne fonctionne pour décoder en lot.

  4. Copiez le résultat

    Récupérez la valeur encodée ou décodée. La conversion se fait localement dans votre navigateur, donc les éventuels secrets contenus dans vos URL ne quittent pas votre machine.

Antisèche des encodages d'URL les plus courants

Les caractères que vous croiserez le plus souvent sous leur forme encodée. La sémantique des caractères réservés vient de la RFC 3986.

CaractèreEncodéPourquoi
espace%20Les espaces sont interdits dans les URL
!%21Réservé par certains serveurs
#%23Marque le début d'un fragment
$%24Caractère réservé
&%26Sépare les paramètres d'une query string
+%2BReprésente l'espace dans les corps form-encoded
/%2FSéparateur de chemin
:%3ASépare le schéma de l'hôte
=%3DSépare la clé de la valeur dans une query string
?%3FMarque le début de la query string
@%40Sépare les infos utilisateur de l'hôte
octet UTF-8%C3%A9Chaque octet non-ASCII est encodé

Exemples d'encodage d'URL à tester

Encoder une requête de recherche

Brut

hello world & more

Encodé

hello%20world%20%26%20more

Les espaces deviennent %20, et le & devient %26 pour qu'il ne soit pas confondu avec un séparateur de paramètres.

Encoder des caractères non-ASCII

Brut

café

Encodé

caf%C3%A9

é correspond à la séquence d'octets UTF-8 0xC3 0xA9, donc la forme encodée comporte *deux* groupes %XX pour ce seul caractère.

encodeURI vs encodeURIComponent

Brut

https://example.com/path?q=hello world

encodeURI

https://example.com/path?q=hello%20world

encodeURIComponent

https%3A%2F%2Fexample.com%2Fpath%3Fq%3Dhello%20world

encodeURI conserve la structure de l'URL (slashs, ?, =). encodeURIComponent encode tous les caractères réservés — à utiliser sur les valeurs qu'on injecte dans une query string, jamais sur une URL entière.

Erreurs courantes lors de l'encodage d'URL

  • Utiliser encodeURI pour des valeurs de query string — les & et = passent à travers et cassent le parsing des paramètres.
  • Encoder une URL deux fois. Le %2520 à la place de %20 est le signe classique d'un bug de double encodage.
  • Oublier que + signifie « espace » dans les corps application/x-www-form-urlencoded, mais reste un + littéral dans le chemin ou la query string d'une URL.

FAQ sur l'encodage d'URL

C'est quoi l'encodage d'URL ?
L'encodage d'URL (aussi appelé percent-encoding) est une manière de représenter les caractères qui ont un sens spécial dans les URL, ou qui ne sont pas sûrs à transmettre, en les remplaçant par un % suivi de deux chiffres hexadécimaux.
Quelle est la différence entre encodeURI et encodeURIComponent ?
encodeURI préserve les caractères de structure d'une URL (/, ?, #, &, =, +). encodeURIComponent les encode tous, ce qui est exactement ce qu'on veut pour les *valeurs* placées à l'intérieur d'une URL — valeurs de paramètres, segments de chemin, fragments. Voir les références MDN sur encodeURI et encodeURIComponent.
Pourquoi un espace devient-il %20 ?
Les espaces n'étant pas autorisés dans les URL, on les remplace par %20, la forme percent-encoded du caractère espace ASCII (0x20 en hexadécimal).
Quand faut-il encoder une URL ?
Encodez toute valeur dynamique ou fournie par l'utilisateur avant de l'insérer dans une URL — valeurs de query string, segments de chemin, cibles de redirection, paramètres OAuth. Ne partez jamais du principe qu'une entrée brute est compatible avec une URL.
Peut-on inverser un encodage d'URL ?
Oui — c'est ce qu'on appelle le décodage d'URL. decodeURI, decodeURIComponent ou n'importe quel décodeur d'URL rétablit le percent-encoding vers les caractères d'origine.

En savoir plus

Autres outils pour développeurs

Apprendre à coder avec Coddy

COMMENCER