Aller au contenu
UtiliaTools

Qu'est-ce que l'encodage URL ? Guide sur le percent-encoding

L'encodage URL (percent-encoding) est le mécanisme qui garantit que les adresses web circulent en toute sécurité sur internet en convertissant les caractères spéciaux dans un format universellement transmissible. Tout développeur web le rencontre quotidiennement.

Pourquoi l'encodage URL existe

Les URL ont été conçues à l'origine pour ne contenir qu'un ensemble limité de caractères du répertoire ASCII. Cependant, le web moderne doit transmettre des données incluant des espaces, des caractères accentués, des emojis et des symboles qui n'ont pas leur place dans une URL brute. L'encodage URL résout ce problème en remplaçant les caractères non sûrs par un % suivi de deux chiffres hexadécimaux.

Comment fonctionne le percent-encoding

Chaque caractère à encoder est converti en sa valeur d'octet (en UTF-8 pour la plupart des systèmes modernes) et représenté sous la forme %XX, où XX est la valeur hexadécimale. Par exemple :

  • Un espace devient %20
  • Une esperluette & devient %26
  • Le signe euro € devient %E2%82%AC (trois octets en UTF-8)
  • Un slash / devient %2F

Certains caractères sont toujours sûrs et n'ont jamais besoin d'encodage : les lettres (A-Z, a-z), les chiffres (0-9) et quelques caractères spéciaux comme -, _, . et ~.

Caractères réservés et non réservés

La RFC 3986 définit deux catégories :

  • Caractères non réservés : Lettres, chiffres, -, _, ., ~ — ils n'ont jamais besoin d'encodage.
  • Caractères réservés : :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, = — ils ont une signification structurelle dans les URL et doivent être encodés lorsqu'ils servent de données plutôt que de délimiteurs.

Quand faut-il encoder les URL

Les situations courantes qui nécessitent un encodage :

  • Paramètres de requête : Les valeurs dans les paires ?clé=valeur doivent être encodées pour gérer les espaces et caractères spéciaux.
  • Segments de chemin : Les noms de fichiers ou slugs contenant des caractères non-ASCII ont besoin d'encodage.
  • Soumission de formulaires : Les formulaires HTML en application/x-www-form-urlencoded utilisent un encodage légèrement différent où les espaces deviennent +.
  • Redirections : Les redirections côté serveur avec du contenu généré par l'utilisateur dans l'URL.

Pièges courants

  • Double encodage : Encoder une URL déjà encodée produit des séquences %25 qui corrompent les données originales.
  • Encoder l'URL entière : Il faut encoder les composants individuels (chemin, valeurs de requête), pas l'URL complète avec :// et ?.
  • Confusion avec le signe plus : Dans les chaînes de requête, + représente un espace en application/x-www-form-urlencoded, mais un + littéral dans le chemin de l'URL.

Questions fréquentes

Quelle est la différence entre l'encodage URL et l'encodage HTML ?

L'encodage URL convertit les caractères pour une transmission sûre dans les adresses web avec la notation pourcentage (%XX). L'encodage HTML convertit les caractères pour un affichage sûr dans le HTML avec des entités comme & et <.

Dois-je encoder l'URL entière ou seulement certaines parties ?

Encodez les composants individuels — les segments de chemin et les valeurs de paramètres de requête — pas l'URL entière. Le protocole, l'hôte et les caractères structurels comme ? et & doivent rester non encodés.

Pourquoi un espace devient-il %20 dans certains cas et + dans d'autres ?

En percent-encoding (RFC 3986), un espace est %20. Dans l'encodage de formulaire (application/x-www-form-urlencoded), un espace est représenté par +. Les deux sont valides mais utilisés dans des contextes différents.

Guides associés

Essayer l'outil

Utilisez notre outil gratuit pour commencer instantanément.

Encodeur et décodeur d'URL →

Dernière mise à jour le 2026-09-27