Encoder et décoder une URL
Encodez une URL ou un paramètre pour qu’il transite sans erreur, et décodez les adresses illisibles pleines de %20 et %C3%A9.

Pourquoi encoder une URL ?
Une adresse web ne peut contenir qu’un jeu restreint de caractères ASCII. Tout le reste — espaces, accents, guillemets, esperluettes, emojis — doit être remplacé par sa valeur hexadécimale précédée d’un pourcentage. Une espace devient %20, un « é » devient %C3%A9.
Sans cet encodage, l’URL est tronquée, mal interprétée, ou le paramètre est perdu en route.
Les deux modes
Encoder un paramètre (option activée par défaut) traite /, ?, & et = comme des caractères ordinaires à encoder. C’est ce qu’il faut quand vous insérez une valeur à l’intérieur d’une URL — une adresse de redirection, un terme de recherche.
Encoder une URL entière (option désactivée) préserve ces caractères, qui structurent l’adresse. À utiliser quand vous nettoyez une URL complète contenant des espaces ou des accents.
Erreur classique : encoder une URL complète en mode paramètre. Le lien devient alors une chaîne inexploitable où les barres obliques sont devenues %2F.
Le cas du « + »
Dans un formulaire envoyé en application/x-www-form-urlencoded, l’espace est historiquement codée par un « + » plutôt que par %20. Les deux se rencontrent ; en cas de doute, %20 fonctionne partout.
Questions fréquentes
Faut-il encoder les accents d’une URL ?
Oui pour la transmission technique. Les navigateurs modernes affichent l’URL avec ses accents pour l’utilisateur, mais l’envoient encodée. Pour une adresse de page, mieux vaut de toute façon un slug sans accent.
Pourquoi mon lien se coupe-t-il au « & » ?
Parce que l’esperluette sépare les paramètres d’une URL. Si votre valeur en contient une, elle doit être encodée en %26 — activez l’option « Encoder aussi ».