À propos du codage URL
Le codage URL, ou encodage par pourcentage, est un mécanisme pour encoder des informations dans un Identificateur Uniforme de Ressource (URI). Il convertit les caractères non autorisés en URL dans un format transmissible sur Internet. Il remplace les caractères ASCII non sûrs par "%" suivi de deux chiffres hexadécimaux.
Utilisations courantes du codage URL
- Formater les chaînes de requête dans les URLs
- Envoyer des données de formulaire via HTTP (application/x-www-form-urlencoded)
- Créer des URLs valides avec caractères spéciaux ou espaces
- Encoder les caractères non ASCII dans les URLs
- Passer des paramètres complexes dans les API et services web
Comment fonctionne le codage URL
Le codage URL suit ces principes :
- Les caractères alphanumériques (A-Z, a-z, 0-9) restent inchangés
- Les caractères spéciaux comme espace, ?, &, =, %, + sont convertis en leurs équivalents percent-codés
- Chaque octet d’un caractère UTF-8 est encodé séparément
- Un espace peut être encodé en "%20" ou "+" (dans les paramètres)
- Les caractères réservés (/,:,?,#, [) ont un rôle spécial selon le contexte
encodeURI vs encodeURIComponent
JavaScript propose deux fonctions pour encoder les URLs :
- encodeURI : Encode un URI complet, préservant la syntaxe (/ : ? # [] @ ! $ & ' ( ) * + , ; =)
- encodeURIComponent : Encode un composant d’URI, incluant tous les caractères spéciaux
Dans la plupart des cas, encodeURIComponent()
est plus sûr pour encoder l’entrée utilisateur ou les paramètres.
Codage URL pour caractères internationaux
Les navigateurs modernes encodent les caractères non ASCII en UTF-8 puis percent-codent chaque octet. Cela garantit que les emojis et symboles Unicode sont correctement inclus. Par exemple, le caractère japonais "日" devient "%E6%97%A5".
Exemples
Texte brut | URL encodé |
---|---|
Hello World | Hello%20World |
https://example.com/?q=search term | https%3A%2F%2Fexample.com%2F%3Fq%3Dsearch%20term |
50% off sale! | 50%25%20off%20sale%21 |
こんにちは | %E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF |