Encodage / décodage d'URL
EncodageEncodage pourcentage pour les composants d'URL et les URL complètes (RFC 3986).
Sur cette page
Qu’est-ce que l’encodage d’URL ?#
Les URL ne peuvent contenir qu’un petit ensemble de caractères non échappés — lettres ASCII, chiffres, et une poignée de symboles comme -, _, ., ~. Tout le reste (un espace, un &, un caractère chinois, un emoji, même un / quand il est censé être une donnée plutôt qu’un séparateur de chemin) doit être écrit sous forme d’échappement en pourcentage : % suivi de deux chiffres hexadécimaux, comme %20 pour un espace ou %E4%B8%AD pour les octets UTF-8 de 中. L’encodage d’URL est la traduction mécanique qui rend un texte arbitraire sûr pour voyager dans une URL.
Il y a deux tâches distinctes que l’on confond tout le temps, et cet outil expose les deux via le sélecteur Options :
- Le mode Composant (le chemin JavaScript
encodeURIComponent) échappe tout ce qui n’est pas une lettre, un chiffre ou l’un de- _ . ! ~ * ' (. Utilisez-le quand le texte est un seul morceau de donnée que vous allez déposer dans un paramètre de requête, un segment de chemin ou un fragment — de sorte que les caractères à signification structurelle (/ ? & = #) soient réduits à du texte littéral inoffensif. - Le mode URL complète (le chemin
encodeURI) échappe les mêmes octets dangereux mais laisse intentionnellement tranquilles les caractères structurels de l’URL elle-même (: / ? # [ ] @ ! $ & ' ( ) * + , ; =). Utilisez-le quand vous avez une URL complète qui a déjà la bonne forme et que vous voulez seulement nettoyer les caractères littéraux à l’intérieur.
Le décodage inverse l’une ou l’autre forme. Quand l’entrée contient un échappement mal formé comme %GG (hexa invalide) ou un % isolé, l’outil signale l’erreur et pointe vers la position fautive plutôt que de deviner.
Mode d’emploi#
- Choisissez Encoder ou Décoder avec le commutateur en haut à gauche.
- Dans Options, choisissez Composant pour une valeur unique que vous placez dans une URL, ou URL complète pour une URL entière qui doit conserver sa structure.
- Collez votre texte dans le panneau Entrée à gauche.
- Lisez le résultat dans le panneau Sortie à droite et cliquez sur Copier.
- Exemple charge une chaîne de démonstration ; Effacer réinitialise les panneaux.
Principales fonctionnalités#
- Deux portées réelles, pas une seule. Composant contre URL complète reflète exactement la distinction
encodeURIComponent/encodeURI, donc vous pouvez échapper une valeur unique ou nettoyer une URL entière sans changer d’outil. - UTF-8 par défaut. Les caractères non ASCII sont encodés comme leur séquence d’octets UTF-8 (la norme depuis la RFC 3986), donc
中文devient%E4%B8%AD%E6%96%87, et non un blob Latin-1 à échappement unique. - Les erreurs pointent vers la position. Quand le décodage rencontre un échappement
%invalide, la ligne d’état signale où il se trouve, au lieu de jeter toute l’entrée. - S’exécute localement. Tout se passe dans votre navigateur ; rien de ce que vous collez n’est téléversé.
Exemple détaillé#
Encoder le fragment a/b?c=d & e en mode Composant produit :
a%2Fb%3Fc%3Dd%20%26%20e
Notez que / devient %2F, ? devient %3F, = devient %3D, l’espace devient %20, et & devient %26 — chaque caractère qui pourrait autrement être lu comme de la structure d’URL a été neutralisé. C’est la forme correcte pour fourrer toute la chaîne dans une seule valeur de requête.
Basculez maintenant en mode URL complète et encodez une URL complète :
https://example.com/path?q=hello world&lang=zh CN
Le résultat conserve le protocole, les barres obliques, ? et & intacts et n’échappe que les espaces littéraux :
https://example.com/path?q=hello%20world&lang=zh%20CN
C’est, en un coup d’œil, la différence entre les deux modes : Composant aplatit tout en donnée, URL complète préserve l’ossature de l’URL et ne nettoie que les octets qui en avaient besoin.
FAQ#
Composant ou URL complète — comment décider ?#
Si vous construisez une chaîne de requête et qu’une des valeurs provient d’une saisie utilisateur, encodez cette valeur en Composant. Si vous avez déjà une URL pleinement formée qui contient simplement quelques caractères parasites (espaces, accents), passez le tout en URL complète. Un test utile : la sortie a-t-elle encore besoin de ses ?, & et / pour fonctionner comme lien ? Alors utilisez URL complète. Ces caractères sont-ils en réalité des données ? Alors utilisez Composant.
Ma chaîne décodée contient %GG et l’outil signale une erreur. Pourquoi ?#
% doit toujours être suivi de deux chiffres hexadécimaux. %GG n’est pas de l’hexa valide, donc le décodeur le refuse et signale la position — la même entrée qui lèverait une URIError dans le code. Corrigez la source pour qu’elle envoie %25 (la forme encodée d’un % littéral) ou corrigez l’échappement mal formé.
Faut-il encoder avant ou après avoir construit la chaîne de requête ?#
Encodez chaque valeur avant de la joindre avec = et &. Si vous construisez d’abord ?q=a & b puis encodez le tout en mode Composant, les = et & sont échappés aussi et le serveur ne les voit plus comme séparateurs. Encodez les morceaux, puis assemblez.
Cet outil gère-t-il Unicode de la même façon que les navigateurs ?#
Oui. Les navigateurs et serveurs modernes s’attendent à ce que les échappements en pourcentage portent des octets UTF-8, et c’est ce qu’émet cet outil — 中 devient %E4%B8%AD. Si vous déboguez un vieux système qui attend un encodage hérité à un octet (Latin-1, GBK, etc.), les octets différeront et il vous faudra un outil spécifique à cet encodage.