L'encodage d'URL expliqué
Mis à jour 2026-07-06
Copiez une URL contenant un terme de recherche et vous verrez souvent quelque chose comme %20 ou %C3%A9 là où devrait se trouver un espace ou une lettre accentuée. C'est l'encodage d'URL à l'œuvre. Ce guide explique ce qu'il fait, pourquoi il est nécessaire et quels caractères sont échappés.
Ce qu'est l'encodage d'URL
L'encodage d'URL — aussi appelé encodage pour cent (percent-encoding) — est une manière de représenter dans une URL des caractères qui seraient sinon dangereux ou ambigus. Chaque caractère de ce type est remplacé par un % suivi de sa valeur d'octet en hexadécimal. Un espace devient %20 ; une esperluette devient %26.
Pourquoi il est nécessaire
Les URL ne peuvent contenir qu'un ensemble limité de caractères, et certains ont des rôles spéciaux : ? démarre la chaîne de requête, & sépare les paramètres, / sépare les segments de chemin et # marque un fragment. Si une valeur que vous mettez dans une URL contient l'un d'eux, elle doit être encodée pour être traitée comme des données, pas comme de la structure.
Search term: cats & dogs In a URL: ?q=cats%20%26%20dogs
Sans encodage, le & brut serait lu comme le début d'un nouveau paramètre, et la recherche casserait.
Caractères réservés vs. non réservés
- Les caractères non réservés (Unreserved) — lettres, chiffres et
- _ . ~— sont toujours sûrs et n'ont jamais besoin d'encodage. - Les caractères réservés (Reserved) — comme
? & / # : @ =— ont une signification spéciale et doivent être encodés lorsqu'ils servent de données littérales. - Tout le reste — espaces, lettres accentuées, emoji et la plupart des symboles — est encodé selon ses octets UTF-8, c'est pourquoi un caractère peut devenir plusieurs paires
%xx.
Une confusion courante : le signe plus
Dans la chaîne de requête d'un envoi de formulaire, les espaces sont parfois encodés en + plutôt qu'en %20. Les deux peuvent signifier « espace » selon le contexte, ce qui fait trébucher — en cas de doute, %20 est toujours sûr.
Encodage d'URL vs. Base64
Ils résolvent des problèmes différents. L'encodage d'URL rend le texte sûr à placer à l'intérieur d'une URL ; Base64 rend les données binaires sûres à déplacer à travers des canaux textuels. Ils sont parfois combinés (Base64URL) mais ne sont pas interchangeables.
Pour encoder ou décoder une valeur, utilisez l'encodeur d'URL, et pour décortiquer tous les paramètres d'une chaîne de requête, l'analyseur de chaîne de requête les répartit en une liste lisible.
Plus sur Formats de données & encodage
Qu'est-ce que JSON ? Un guide en langage clair (et comment corriger les erreurs courantes)
L'encodage Base64 expliqué : ce que c'est et quand l'utiliser
Encodage des caractères : Unicode et UTF-8 expliqués
YAML expliqué + JSON vs. YAML
Qu'est-ce que XML et comment ça marche
Le format CSV expliqué + problèmes courants
Outils mentionnés dans ce guide