Encodez les caractères spéciaux d'une adresse web pour qu'elle reste valide, ou décodez une URL illisible remplie de séquences en pourcentage.
Une adresse web ne peut contenir qu'un jeu restreint de caractères. Tous les autres — espaces, accents, symboles — doivent être remplacés par leur code sous forme de pourcentage suivi de deux chiffres hexadécimaux. L'espace devient %20, le « é » devient %C3%A9. C'est ce qu'on appelle le percent-encoding.
Deux modes sont proposés, et la distinction est importante. Le mode valeur de paramètre encode absolument tout, y compris les caractères de structure comme /, ?, & et =. C'est celui à utiliser pour la valeur d'un paramètre, sinon un « & » présent dans la valeur serait interprété comme un séparateur et couperait votre requête.
Le mode URL complète préserve ces caractères de structure et n'encode que ce qui pose problème. Il sert à nettoyer une adresse entière, par exemple une URL contenant des accents ou des espaces, sans en détruire l'architecture.
Pour la valeur d'un paramètre — un terme de recherche, un nom de fichier — utilisez le mode valeur, qui encode tout. Pour nettoyer une adresse complète, utilisez le mode URL complète, qui préserve les séparateurs.
%20 est l'encodage standard, valable partout. Le + est une convention spécifique aux formulaires HTML envoyés en méthode GET. Les deux se rencontrent ; %20 est le choix sûr hors contexte de formulaire.
Décodez-la avant toute modification. Ré-encoder une adresse déjà encodée produit un double encodage : %20 devient %2520, et le lien cesse de fonctionner.
Les navigateurs les affichent lisiblement, mais transmettent en réalité leur version encodée. Pour un lien inséré dans un e-mail, un document ou du code, mieux vaut fournir la version encodée, qui fonctionne partout.