Encoder et décoder une URL
Encodez et décodez URL et chaînes de requête en pourcent, et découpez une URL en parties. Tout s'exécute localement — rien n'est téléversé.
- Entrée
- Text · URL
- Sortie
- Encoded · decoded · parsed parameters
Pour une valeur ou un segment de chemin : & = ? / # sont encodés.
Texte
40 caractères
Encodé
76 caractères
Caf%C3%A9%20%26%20cr%C3%A8me%3F%2050%25%20off%20%2F%20today%20only%20%23deal
Encoder et décoder des URL, et analyser l'URL entière
Cet encodeur et décodeur d'URL convertit du texte vers et depuis l'encodage pourcent pendant que vous tapez, dans les trois variantes réellement utilisées sur le web. Le décodeur gère les entrées cassées dont regorgent les vrais logs — un % égaré ou une séquence UTF-8 tronquée — et indique précisément où elles se trouvent. Un analyseur d'URL découpe n'importe quelle adresse en ses différentes parties et vous permet de modifier la chaîne de requête sous forme de tableau. Tout s'exécute localement dans votre navigateur.
Comment encoder ou décoder une URL
- Choisissez Encoder, Décoder ou Analyser l'URL.
- À l'encodage, choisissez la méthode : Composant pour une seule valeur de requête ou un segment de chemin, URL complète pour nettoyer une adresse sans la casser, ou Formulaire pour reproduire ce qu'envoie un formulaire HTML.
- Au décodage, décidez si
+signifie une espace. C'est le cas dans les chaînes de requête et les corps de formulaire, pas dans les chemins. - Copiez le résultat, ou renvoyez-le dans l'entrée pour vérifier l'aller-retour. Dans Analyser l'URL, modifiez, ajoutez ou supprimez des paramètres de requête et l'URL est reconstruite pour vous.
Ce que fait l'encodage pourcent
Une URL ne peut contenir qu'un ensemble limité de caractères ASCII, et plusieurs d'entre eux ont un rôle : / sépare les segments du chemin, ? ouvre la requête, & et = séparent les paramètres et # ouvre le fragment. Tout autre caractère, ou un caractère réservé utilisé comme donnée, s'écrit % suivi de deux chiffres hexadécimaux pour chacun de ses octets UTF-8. Une espace devient %20, & devient %26, et é, qui fait deux octets en UTF-8, devient %C3%A9.
Se tromper est un bug classique : une recherche « sel & poivre » qui arrive sous la forme « sel » tout court, parce que le & non encodé a ouvert un nouveau paramètre.
encodeURIComponent, encodeURI ou encodage de formulaire ?
- Composant (encodeURIComponent)
- Encode tout sauf les lettres, les chiffres et - _ . ! ~ * ' ( ). À utiliser pour un seul morceau d'URL : une valeur de requête, un segment de chemin, une URL de redirection passée en paramètre. C'est le bon choix neuf fois sur dix.
- URL complète (encodeURI)
- Laisse intacts les caractères qui donnent sa structure à une URL (: / ? # & = etc.) et encode le reste, comme les espaces et les lettres non ASCII. À utiliser sur une adresse complète que vous voulez rendre valide, jamais sur une valeur isolée — il n'encodera pas les & ou = qu'elle contient.
- Formulaire (application/x-www-form-urlencoded)
- Ce qu'envoient les navigateurs à la soumission d'un formulaire et ce que produit URLSearchParams : les espaces deviennent +, et seuls les lettres, les chiffres et * - . _ restent tels quels.
Décodage, signes + et séquences mal formées
Le caractère + ne signifie une espace que dans la chaîne de requête et les corps de formulaire ; dans un chemin, c'est un plus littéral. C'est pourquoi le décodage propose une option + comme espace au lieu de deviner. Si une valeur décodée affiche des signes plus là où il devrait y avoir des espaces, activez-la.
La fonction JavaScript decodeURIComponent lève l'erreur « URI malformed » au premier % qui n'est pas suivi de deux chiffres hexadécimaux — « 100% » suffit — ou sur une suite d'octets qui n'est pas de l'UTF-8 valide, comme un texte encodé en Latin-1 (%E9 pour é). Ce décodeur, lui, continue : il décode tout ce qui est valide, laisse les parties cassées telles quelles et liste chacune avec sa ligne et sa colonne, pour que vous la retrouviez dans une longue ligne de log.
Lire et modifier une URL
L'analyseur affiche le protocole, les identifiants, l'hôte, le port, le chemin, la requête et le fragment de toute URL absolue, décodés pour être lisibles. Les paramètres de requête apparaissent dans un tableau clé/valeur : modifiez une valeur, ajoutez ou supprimez un paramètre, et l'URL complète est reconstruite avec le bon encodage. C'est un moyen rapide de retirer des paramètres de suivi comme utm_source, ou de voir où pointe réellement un long lien de redirection.
Pour d'autres encodages, voyez l'encodeur Base64 et l'encodeur d'entités HTML, qui échappe le texte pour le HTML plutôt que pour les URL.
Questions fréquentes
- Qu'est-ce que l'encodage d'URL ?
- L'encodage d'URL, ou encodage pourcent, remplace les caractères interdits ou ayant un sens particulier dans une URL par % suivi de la valeur hexadécimale de chacun de leurs octets UTF-8. Une espace devient %20 et & devient %26.
- Une espace s'encode-t-elle en %20 ou en + ?
- Les deux sont corrects, à des endroits différents. %20 fonctionne partout. + ne signifie une espace que dans les chaînes de requête et les soumissions de formulaire, ce que produit l'encodage de formulaire ; dans un chemin, + est un signe plus littéral.
- Quelle est la différence entre encodeURI et encodeURIComponent ?
- encodeURIComponent encode les caractères réservés comme / ? & = et #, il sert donc pour une seule valeur à l'intérieur d'une URL. encodeURI les laisse intacts, il sert donc pour une URL complète dont la structure doit être préservée.
- Pourquoi ai-je une erreur « URI malformed » ?
- L'entrée contient un % qui n'est pas suivi de deux chiffres hexadécimaux, ou des octets encodés qui ne forment pas de l'UTF-8 valide. Cet outil décode quand même le reste et indique où se trouve chaque problème.
- Comment décoder les paramètres d'une URL ?
- Collez l'URL dans Analyser l'URL pour voir chaque paramètre de requête décodé dans un tableau, ou collez seulement la chaîne de requête dans Décoder avec + comme espace activé.
- Quels caractères n'ont pas besoin d'être encodés dans une URL ?
- Les lettres de A à Z et de a à z, les chiffres et - . _ ~ sont toujours sûrs. Tout le reste doit être encodé quand il s'agit de données et non de la structure de l'URL.
- Mon URL est-elle envoyée quelque part ?
- Non. L'encodage, le décodage et l'analyse s'exécutent dans votre navigateur : les URL contenant des jetons ou des données personnelles ne quittent jamais votre appareil.