Qu'est-ce que l'encodage d'URL ?
Les URLs ne peuvent contenir qu'un ensemble limité de caractères ASCII. Tout le reste — espaces, &, =, ?, lettres non-ASCII — doit être percent-encoded. Chaque octet interdit est remplacé par % suivi de sa valeur hexadécimale à deux chiffres. Par exemple, un espace devient %20 et é devient %C3%A9 (sa séquence d'octets UTF-8).
encodeURIComponent vs encodeURI
JavaScript expose deux fonctions natives aux règles d'échappement différentes :
- encodeURIComponent encode presque tout — idéal pour insérer une valeur unique dans une query string ou un segment de chemin.
- encodeURI préserve les caractères légaux dans une URL complète (
:/?#[]@!amp;'()*+,;=), et sert donc à encoder une URL entière sans casser sa structure.
Règle pratique : utilisez encodeURIComponent pour insérer une valeur utilisateur dans une URL, et encodeURI pour assainir une URL déjà construite.
Exemples courants
- hello world
- hello%20world
- a+b=c
- a%2Bb%3Dc
- café
- caf%C3%A9
- https://x.com/?q=a b
- https%3A%2F%2Fx.com%2F%3Fq%3Da%20b