L'encodage URL (percent-encoding) est essentiel pour transmettre des caractères spéciaux dans les adresses web. Les espaces, accents et symboles doivent être encodés pour être interprétés correctement par les navigateurs et serveurs web.
Qu'est-ce que l'encodage URL (percent-encoding) ?
L'encodage URL remplace les caractères non autorisés dans une URL par leur code hexadécimal précédé de %. Par exemple, un espace devient %20, un & devient %26, un é devient %C3%A9. Ce mécanisme est défini par la RFC 3986 et est indispensable pour construire des URLs valides contenant des paramètres avec des caractères spéciaux.
Cas d'usage
Paramètres d'URL
Encodez les valeurs des paramètres de recherche : ?q=café+crème → ?q=caf%C3%A9+cr%C3%A8me
API REST
Les appels API nécessitent un encodage correct des paramètres pour éviter les erreurs de parsing.
Redirections
Les URLs de redirection contenant elles-mêmes des URLs doivent être doublement encodées.
Exemples concrets
| Entrée | Résultat |
|---|---|
| café crème | caf%C3%A9%20cr%C3%A8me |
| prix=10€&qt=5 | prix%3D10%E2%82%AC%26qt%3D5 |
| https://exemple.com | https%3A%2F%2Fexemple.com |
Erreurs fréquentes
❌ Confondre encodeURI et encodeURIComponent
✅ encodeURI préserve /:@? (pour les URLs complètes). encodeURIComponent encode tout (pour les paramètres).
❌ Double encodage accidentel
✅ Encoder deux fois transforme %20 en %2520. Vérifiez que vous n'encodez qu'une seule fois.
Conseils d'expert
- 💡Les espaces peuvent être encodés en %20 ou en + (uniquement dans les formulaires)
- 💡JavaScript : encodeURIComponent() pour les valeurs, encodeURI() pour les URLs complètes
- 💡Les lettres A-Z, a-z, chiffres 0-9 et -_.~ ne sont jamais encodés
Questions supplémentaires
Pourquoi faut-il encoder les URLs ?▼
Quelle différence entre %20 et + pour les espaces ?▼
Notez l'outil « Qu'est-ce que l'encodage URL (percent-encoding) ? »