Encoder et décoder une URL

Encodez des paramètres ou des URL entières — avec la bonne fonction pour chaque usage.

🔒 Fonctionne localement dans votre navigateur — rien n’est envoyé.

Analyseur de query string

Modifiez un nom ou une valeur ci-dessous — l’URL complète est reconstruite et réencodée.

À propos de cet outil

Espaces, accents, &, = et la plupart des symboles ne peuvent pas figurer bruts dans une URL — ils doivent devenir des séquences %XX (percent encoding). Le choix critique est quelle fonction : encodeURIComponent échappe tout, y compris &, = et ?, et convient aux valeurs de paramètres ; encodeURI préserve la structure de l'URL et ne sert qu'à encoder une URL complète.

Les confondre est un bug classique : encodeURI sur un paramètre casse silencieusement les valeurs contenant & ou =. Lisez la comparaison complète dans encodeURI vs encodeURIComponent. L'analyseur de query string décode chaque paramètre d'une URL collée dans un tableau éditable — modifiez un nom ou une valeur et l'URL complète est reconstruite. Tout s'exécute dans votre navigateur — plus d'outils sur dec0de.dev.

L’encodage d’URL (pourcentage) remplace les caractères qui casseraient une URL par un % suivi de leur valeur d’octet en hexadécimal — une espace devient %20, une esperluette %26. C’est ainsi qu’on place en toute sécurité des termes de recherche, des cibles de redirection, des tokens et du texte non ASCII dans un lien ou une query string. Les caractères réservés (: / ? # [ ] @ ! $ & ' ( ) * + , ; =), les espaces et tout ce qui sort de l’ensemble non réservé (lettres, chiffres et - _ . ~) sont encodés ; le reste reste lisible.

Questions fréquentes

encodeURIComponent ou encodeURI — lequel utiliser ?

Utilisez encodeURIComponent pour une seule valeur de requête ou un segment de chemin — il encode &, =, ?, / et plus. N’utilisez encodeURI que pour une URL entière que vous ne voulez pas casser. Encoder une valeur avec encodeURI est un bug classique.

Pourquoi une espace est-elle parfois %20 et parfois + ?

Dans le chemin d’une URL, une espace est %20. Dans une query string au format form-urlencoded, une espace s’écrit souvent +. Les deux se décodent en une espace, et le bouton « + signifie espace » bascule entre les deux modes.

Puis-je encoder toute une liste de valeurs d’un coup ?

Oui. Activez « Lot : une valeur par ligne » et chaque ligne est encodée ou décodée indépendamment, en conservant l’ordre et les lignes vides. Le résultat peut être copié ou téléchargé en fichier texte.

Quels caractères doivent réellement être encodés ?

Les caractères réservés (: / ? # [ ] @ ! $ & ' ( ) * + , ; =), les espaces, le texte non ASCII et les caractères de contrôle. L’ensemble non réservé — lettres, chiffres et - _ . ~ — est toujours laissé tel quel.

Pourquoi le décodage échoue-t-il avec « séquence d’échappement invalide » ?

Un % doit être suivi d’exactement deux chiffres hexadécimaux, et les octets obtenus doivent former de l’UTF-8 valide. Un % littéral non encodé (écrivez %25), une séquence tronquée comme %2, ou des octets d’un autre jeu de caractères cassent le décodage. Cet outil nomme la séquence fautive et sa position, et vous y amène.

Mes données d’URL restent-elles privées ?

Oui. L’encodage, le décodage et l’analyse de la query string s’exécutent dans votre navigateur. Votre saisie n’est mémorisée que dans le local storage de ce navigateur pour survivre à un rechargement — le bouton Effacer l’efface. Rien n’est envoyé où que ce soit.