Encodeur et décodeur d’URL

Encodez du texte en pourcent pour les URL et les query strings, décodez des URL encodées et découpez n’importe quelle URL en composants, avec ses paramètres de requête décodés.

Fonctionne dans le navigateurSans inscriptionAucun envoi de données

Encodé

Comment utiliser : Encodeur / décodeur d’URL

  1. Choisissez Encoder ou Décoder.
  2. Pour l’encodage, choisissez Composant pour une valeur de paramètre ou un segment de chemin, URL complète pour conserver la structure de l’URL, ou Données de formulaire pour application/x-www-form-urlencoded.
  3. Collez votre texte. Le résultat apparaît instantanément ; les séquences d’échappement mal formées sont signalées avec leur position.
  4. Collez une URL complète dans l’Analyseur d’URL pour voir son hôte, son chemin, son fragment et chaque paramètre de requête décodé.

Qu’est-ce que l’encodage d’URL ?

Les URL ne peuvent contenir qu’un ensemble limité de caractères ASCII (RFC 3986). Tout le reste, y compris les espaces, les lettres accentuées et les caractères ayant une signification particulière comme &, ? et #, s’écrit sous la forme d’un signe pourcentage suivi de deux chiffres hexadécimaux pour chaque octet UTF-8. Une espace devient %20 et é devient %C3%A9.

encodeURIComponent ou encodeURI

FonctionLaisse intactÀ utiliser pour
encodeURIComponentA-Z a-z 0-9 - _ . ~Une seule valeur de paramètre, un segment de chemin ou un nom de paramètre
encodeURIAussi : / ? # [ ] @ ! $ & ' ( ) * + , ; =Une URL entière dont la structure doit être préservée

Utiliser encodeURI sur une valeur de paramètre est un bug classique : un & dans la valeur n’est pas échappé et coupe le paramètre en deux. Le mode Composant de cet outil échappe aussi ! ' ( ) * pour une conformité stricte à la RFC 3986.

%20 ou + pour les espaces ?

Dans les chemins, une espace doit s’écrire %20. Dans les soumissions de formulaires HTML (application/x-www-form-urlencoded) et de nombreuses query strings, une espace s’écrit +. Au décodage, activez Traiter + comme un espace pour les données de formulaire, et désactivez-le lorsqu’un signe plus littéral compte, comme dans jane+test@example.com.

Questions fréquentes

Pourquoi ai-je l’erreur « séquence d’échappement mal formée » au décodage ?
Un % doit être suivi d’exactement deux chiffres hexadécimaux. Un signe pourcentage littéral, comme dans « -50 % », aurait dû être encodé en %25. L’erreur indique la position de la séquence fautive.
Que signifie « séquence d’octets UTF-8 invalide » ?
Les octets n’ont pas été encodés en UTF-8, souvent parce que le texte provient d’un ancien système utilisant le Latin-1 (par exemple %E9 pour é au lieu de %C3%A9), ou parce que la chaîne a été coupée au milieu d’un caractère.
Faut-il encoder toute l’URL ou seulement les paramètres ?
Encodez chaque nom et chaque valeur de paramètre séparément en mode composant, puis assemblez-les avec = et &. Encoder une URL complète en mode composant échapperait aussi :// et la casserait.
Le double encodage pose-t-il problème ?
Oui. Encoder une chaîne déjà encodée transforme %20 en %2520. Si vous voyez %25 suivi de chiffres hexadécimaux, la valeur a probablement été encodée deux fois. Décodez-la deux fois pour retrouver l’original.

Outils associés