Curious TechieDev Toolbox
Tous les Guides/Standards Web8 min read

Qu’est-ce que l’URL Encoding (Percent-Encoding) ?

Norme RFC 3986, caractères réservés, transposition des octets UTF-8 et assainissement des requêtes.

Points Clés
  • L’encodage pourcent convertit les caractères en séquences hexadécimales %HH selon la RFC 3986.
  • Les séparateurs comme ?, & et = doivent être protégés dans les valeurs d’URL.
  • encodeURIComponent() cible les valeurs précises, encodeURI() préserve les chemins d’accès.
  • L’espace s’exprime par %20 ou + selon le contexte applicatif.

Les URI sont cantonnées à un sous-ensemble strict de caractères US-ASCII. Afin de faire circuler sans encombre accents, emojis et séparateurs, le Web s’appuie sur l’Encodage URL (Percent-Encoding).

1. Pourquoi les URL Utilisent le Percent-Encoding

Encadré par la RFC 3986, ce procédé remplace les octets prohibés par un symbole pourcentage (%) suivi de deux chiffres hexadécimaux représentant leur code octet (ex. : Espace = %20).

2. Caractères Réservés vs Non-Réservés

  • Non-réservés : A-Z, a-z, 0-9, -, _, ., ~ (jamais encodés).
  • Réservés (Délimiteurs de structure) : :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =.

3. encodeURI vs encodeURIComponent

Appliquez encodeURI à une URL complète pour préserver le protocole (https://) et les barres de chemin (/). Préférez encodeURIComponent pour assainir la valeur individuelle d’un paramètre de recherche.

4. Le Dilemme de l’Espace : %20 vs Signe Plus (+)

La RFC 3986 préconise %20 partout dans l’URI. L’usage du signe + pour l’espace provient du format historique des formulaires HTML (application/x-www-form-urlencoded) et n’est admis que dans la query string.