Encodeur & Décodeur URL
Convertissez vos URLs et paramètres avec le percent-encoding standard RFC 3986.
Mode d'encodage
Actions
Tableau de référence des encodages
Guide complet de l'encodage URL
Pourquoi l'encodage URL est nécessaire
En développant des applications web, je rencontre constamment le besoin d'encoder des URLs. Le protocole HTTP et la spécification des URLs (RFC 3986) définissent un ensemble restreint de caractères autorisés : lettres, chiffres, et quelques caractères spéciaux (-._~). Tout le reste : espaces, accents, symboles : doit être converti en séquences d'échappement %XX (percent-encoding).
Les trois fonctions d'encodage
encodeURIComponent()
Encode TOUS les caractères spéciaux. Utiliser pour les valeurs de paramètres de requête. Exemple : le paramètre search=café frappé doit encoder la valeur.
encodeURI()
Préserve les caractères structurels d'URL (://?#). Utiliser pour encoder une URL complète sans casser sa structure. N'encode pas les caractères réservés.
escape() [déprécié]
Ancienne fonction ne gérant pas l'UTF-8 correctement. Éviter pour les nouveaux développements. Conservé uniquement pour la compatibilité avec du code legacy.
Cas pratiques courants
- Paramètres de recherche :
?q=café+au+laitencode les espaces et accents pour transmettre correctement la requête - URLs avec caractères non-ASCII : Les URLs contenant du chinois, arabe ou cyrillique nécessitent un encodage pour fonctionner
- Données JSON dans l'URL : Passer du JSON via query string requiert un double encodage prudent
- OAuth et tokens : Les access tokens contiennent souvent des caractères spéciaux à encoder
- Redirection avec paramètres : L'URL de retour dans
redirect_uridoit être entièrement encodée
Erreurs fréquentes à éviter
- Encoder une URL complète avec encodeURIComponent : casse la structure (les :// deviennent %3A%2F%2F)
- Oublier d'encoder les paramètres : provoque des erreurs 400 ou des injections de paramètres
- Double encodage accidentel : transforme %20 en %2520, causant des bugs subtils
- Utiliser + pour les espaces en dehors des formulaires : non standard, préférer %20
- Encoder côté serveur et côté client : risque de double encodage