URL
Encodeur URL
Encodez et décodez des URL en pourcentage.
À propos de l'encodage en pourcentage
L'encodage en pourcentage (ou encodage URL) remplace les caractères non sûrs dans une URL — espaces, &, ?, #, lettres non-ASCII, etc. — par un % suivi de leur valeur hexadécimale. C'est ainsi que les paramètres de requête et les segments de chemin transportent du texte arbitraire sans casser la syntaxe de l'URL elle-même.
Tous les caractères n'ont pas besoin d'être encodés, et l'ensemble exact laissé tel quel dépend du contexte. La RFC 3986 marque les lettres, les chiffres et - _ . ~ comme toujours sûrs ; tout le reste de l'ensemble « réservé » (comme / ? # &) n'est sûr que là où il n'assure pas déjà un rôle syntaxique. Il existe aussi une particularité propre aux formulaires : application/x-www-form-urlencoded, le format utilisé par les navigateurs pour soumettre les formulaires HTML, encode une espace en + plutôt qu'en %20 — une convention propre à ce type de contenu précis, pas aux URL en général.
Où vous le rencontrerez
- Des valeurs de paramètres de requête contenant des espaces, des symboles ou du texte non latin
- Des soumissions de formulaire envoyées en application/x-www-form-urlencoded
- L'encodage d'URL de redirection ou de jetons passés en paramètres d'URL
- Rendre des chemins de fichiers ou des termes de recherche sûrs dans un lien
Questions fréquentes
L'encodage en pourcentage est-il identique au Base64 ?
Non — ils résolvent des problèmes différents. L'encodage en pourcentage échappe certains caractères non sûrs dans un texte par ailleurs lisible ; le Base64 réencode des données binaires entières dans un alphabet fixe.
Pourquoi certains caractères restent-ils inchangés ?
Les lettres, les chiffres et quelques symboles (- _ . ~) sont définis comme toujours sûrs dans une URL et restent donc inchangés.
Cela encode-t-il une URL entière ou juste une partie ?
Seulement le texte que vous collez comme valeur. Encoder une URL entière échapperait aussi les barres obliques et les deux-points qui doivent rester tels quels — appliquez-le donc à des valeurs de requête individuelles, pas à l'adresse complète.
Pourquoi une espace devient-elle parfois + et parfois %20 ?
Les deux sont valides, mais à des endroits différents. Dans le chemin ou la chaîne de requête d'une URL, une espace est correctement encodée en %20. Le raccourci + est propre au format application/x-www-form-urlencoded utilisé par les formulaires HTML, où un + littéral doit lui-même être encodé en %2B pour éviter toute ambiguïté. Cet outil produit du %20, toujours correct ; si vous construisez à la main un corps encodé pour un formulaire, remplacez les espaces encodées par des +.