Aller au contenu
UtiliaTools

L'encodage d'URL expliqué : Tout ce que vous devez savoir

Découvrez le fonctionnement de l'encodage d'URL, son importance en développement web, et encodez/décodez des URL instantanément.

L'encodage d'URL expliqué : Tout ce que vous devez savoir

Chaque fois que vous faites une recherche sur Google, partagez un lien avec des paramètres de requête ou construisez une API REST, l'encodage d'URL travaille en coulisses. Pourtant, de nombreux développeurs le traitent comme un mystère — ou pire, l'ignorent jusqu'à ce que quelque chose casse.

Ce guide explique l'encodage d'URL (aussi appelé percent-encoding) depuis zéro : ce que c'est, pourquoi il existe, comment il fonctionne, et comment le gérer correctement dans vos projets.

Qu'est-ce que l'encodage d'URL ?

L'encodage d'URL est un mécanisme qui remplace certains caractères par un signe % suivi de deux chiffres hexadécimaux. Il garantit que les URL ne contiennent que des caractères de l'ensemble ASCII sûr, les rendant valides et transmissibles sur Internet.

Par exemple, un espace devient %20, et une esperluette devient %26.

La spécification officielle est définie dans la RFC 3986, qui décrit quels caractères sont autorisés dans les URL et lesquels doivent être encodés.

Pourquoi l'encodage d'URL est-il nécessaire ?

Les URL ne peuvent contenir qu'un ensemble limité de caractères :

  • Lettres : A–Z, a–z
  • Chiffres : 0–9
  • Caractères non réservés : -, _, ., ~

Tout le reste — espaces, caractères accentués, symboles comme &, =, ?, # — doit être encodé s'il apparaît dans une URL. Sans encodage, le serveur ne peut pas distinguer de façon fiable les données réelles des caractères structurels de l'URL.

Considérez cette URL :

https://example.com/search?q=hello world&lang=fr

L'espace dans « hello world » crée une ambiguïté. Fait-il partie de la requête, ou signale-t-il autre chose ? L'encodage d'URL supprime cette ambiguïté :

https://example.com/search?q=hello%20world&lang=fr

Comment fonctionne l'encodage d'URL

Le processus d'encodage est simple :

  1. Prendre un caractère qui ne fait pas partie de l'ensemble sûr.
  2. Le convertir en sa valeur en octet (en UTF-8 pour les caractères non-ASCII).
  3. Représenter chaque octet par % suivi de deux chiffres hexadécimaux.

Exemples

Caractère Octets UTF-8 Encodé
Espace 0x20 %20
& 0x26 %26
é 0xC3 0xA9 %C3%A9
ñ 0xC3 0xB1 %C3%B1
中 0xE4 0xB8 0xAD %E4%B8%AD

Notez que les caractères non-ASCII comme é produisent plusieurs octets encodés car l'UTF-8 utilise des séquences multi-octets pour les caractères en dehors de la plage ASCII de base.

Encodage d'URL vs encodage de formulaire

Il y a une distinction importante entre l'encodage d'URL (percent-encoding selon la RFC 3986) et l'encodage de formulaire (application/x-www-form-urlencoded) :

Aspect Encodage URL Encodage formulaire
Espace → %20 +
Standard RFC 3986 Spécification HTML
Utilisé dans Chemin, query string Soumission de formulaires

Dans l'encodage de formulaire, les espaces deviennent + au lieu de %20. C'est une source fréquente de bugs quand les développeurs confondent les deux formats.

Quand devez-vous encoder une URL ?

Vous avez besoin d'encodage d'URL dans plusieurs scénarios courants :

  • Paramètres de requête : Les valeurs contenant des caractères spéciaux (&, =, ?, espaces) doivent être encodées.
  • Chemins d'URL avec espaces ou Unicode : Les noms de fichiers comme mon fichier.pdf ou café.md doivent être encodés.
  • Construction dynamique d'URL : Quand vous concaténez des entrées utilisateur dans des URL, encodez toujours l'entrée.
  • URL de redirection : Les paramètres comme ?redirect=https://autre.com/page?a=1&b=2 nécessitent l'encodage de l'URL interne.

Comment encoder une URL en code

JavaScript

// encodeURI : encode une URL complète (préserve ://, ?, &, =)
encodeURI("https://example.com/hello world");
// → "https://example.com/hello%20world"

// encodeURIComponent : encode une valeur unique (encode tout caractère spécial)
encodeURIComponent("hello world&more");
// → "hello%20world%26more"

Python

from urllib.parse import quote, quote_plus

quote("hello world")      # → "hello%20world"
quote_plus("hello world") # → "hello+world"

PHP

urlencode("hello world");    // → "hello+world"
rawurlencode("hello world"); // → "hello%20world"

Erreurs courantes en encodage d'URL

  1. Double encodage : Encoder une chaîne déjà encodée produit %2520 au lieu de %20. Vérifiez toujours si votre framework encode déjà les valeurs.
  2. Utiliser la mauvaise fonction : En JavaScript, encodeURI et encodeURIComponent se comportent différemment. Utilisez encodeURIComponent pour les valeurs de paramètres de requête.
  3. Oublier de décoder côté serveur : Si vous encodez côté client, le framework serveur décode généralement automatiquement — mais pas toujours. Vérifiez que votre backend le gère.
  4. Encoder l'URL entière : Utiliser encodeURIComponent sur une URL complète va encoder les caractères ://, ? et &, cassant la structure de l'URL.

Essayez notre encodeur/décodeur d'URL gratuit

Notre Encodeur/Décodeur d'URL rend l'encodage d'URL instantané et sans tracas. Collez simplement votre texte ou votre URL, choisissez encoder ou décoder, et obtenez le résultat immédiatement.

Fonctionnalités :

  • Encodage et décodage instantanés en un clic
  • Supporte les caractères Unicode de toutes les langues
  • Fonctionne dans votre navigateur — aucune donnée envoyée à un serveur
  • Affiche les deux formats — percent-encoding et encodage de formulaire

Que vous déboguiez une URL cassée, construisiez des query strings ou testiez des endpoints API, avoir un outil d'encodage d'URL fiable vous fait gagner du temps et évite des bugs frustrants.

Décoder des URL

Le décodage est le processus inverse : remplacer les séquences %XX par leurs caractères d'origine. La plupart des frameworks web gèrent cela automatiquement pour les requêtes entrantes, mais vous pourriez avoir besoin de décoder manuellement quand :

  • Vous analysez des URL provenant de logs ou de bases de données
  • Vous travaillez avec des requêtes HTTP brutes
  • Vous traitez des URL soumises par des utilisateurs

Conclusion

L'encodage d'URL est une petite pièce critique de l'infrastructure web. Comprendre quand et comment encoder (et décoder) les URL prévient les bugs, améliore la sécurité et garantit que vos applications gèrent correctement les caractères internationaux.

Mettez en favoris notre Encodeur/Décodeur d'URL pour des tâches rapides d'encodage et de décodage — c'est gratuit, rapide et fonctionne entièrement dans votre navigateur.

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