Encodage / décodage d’URL
Encodez ou décodez en pourcent les composants d’URL et chaînes de requête
À propos de cet outil
Les caractères comme les espaces, les esperluettes et les lettres non ASCII ne peuvent pas figurer tels quels dans une URL : ils sont encodés en pourcent — une espace devient %20, 你 devient %E4%BD%A0. Cet outil encode du texte pour l’inclure sans risque dans des URL et décode les chaînes en pourcent vers du texte lisible, y compris la convention + pour les espaces utilisée dans les chaînes de requête.
Deux modes d’encodage sont proposés parce que JavaScript lui-même en a deux : le mode composant (encodeURIComponent) échappe tout ce qui pourrait délimiter une URL — ce qu’il faut pour une valeur isolée de chaîne de requête ; le mode URI complet (encodeURI) préserve les caractères structurels comme /, ? et &, pour encoder une URL entière qui doit rester navigable.
Le décodage est strict avec les séquences % malformées — un % isolé ou %ZZ est signalé comme une erreur au lieu d’être laissé passer silencieusement, exactement comme le traiteront les navigateurs et les serveurs.
Questions fréquentes
- Quand utiliser le mode composant plutôt que le mode URI complet ?
- Pour encoder une valeur qui va à l’intérieur d’une URL (une requête de recherche, une cible de redirection, une adresse e-mail en paramètre) → mode composant, pour que les & et = dans la valeur ne cassent pas la chaîne de requête. Pour encoder une URL complète destinée à l’affichage ou au transport → mode URI complet, pour que la structure de l’URL survive.
- Pourquoi + signifie-t-il parfois une espace ?
- Le format application/x-www-form-urlencoded — utilisé par les soumissions de formulaires HTML et les chaînes de requête — encode historiquement les espaces en +. Dans un chemin d’URL, + est juste un plus. Le décodeur ici traite + comme une espace, conformément à la sémantique des chaînes de requête ; %20 fonctionne toujours et partout.
- Pourquoi ma chaîne est-elle doublement encodée (%2520) ?
- %25 est l’encodage de % lui-même, donc %2520 signifie que le texte %20 a été encodé une seconde fois. Cela arrive quand deux couches d’un système encodent chacune de leur côté. Décodez deux fois ici pour la déballer, puis corrigez la couche qui ne devrait pas encoder.
- Les caractères Unicode sont-ils gérés correctement ?
- Oui — le texte est d’abord encodé en UTF-8 puis chaque octet est échappé en pourcent, conformément au standard URL du WHATWG. C’est pourquoi un caractère CJC devient trois groupes %XX.