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.