Encodeur/Décodeur d'URL
Encodez les caractères spéciaux pour les URLs ou décodez les chaînes URL encodées en pourcentage. Essentiel pour le développement web et le travail API.
Comment Utiliser
- Saisissez ou collez votre texte ou URL dans la zone de saisie
- Cliquez sur Encoder pour encoder les caractères spéciaux en pourcentage, ou sur Décoder pour revenir en arrière
- Copiez le résultat pour l'utiliser dans votre application
Questions Fréquentes
-
Qu'est-ce que l'encodage d'URL ?
L'encodage d'URL (aussi appelé encodage en pourcentage) remplace les caractères spéciaux par un signe de pourcentage suivi de leur valeur hexadécimale. Par exemple, un espace devient %20.
-
Quand dois-je encoder une URL ?
Encodez les URLs lorsque vous incluez des caractères spéciaux dans des paramètres d'URL, des chaînes de requête ou des données de formulaire qui seront envoyées via HTTP.
-
Quelle est la différence entre encodeURI et encodeURIComponent ?
encodeURI encode un URI complet en préservant des caractères comme :, / et ?. encodeURIComponent encode tout sauf les lettres, les chiffres et quelques caractères spéciaux, ce qui le rend adapté à l'encodage de valeurs de paramètres individuels.
-
Gère-t-il les caractères Unicode ?
Oui, les caractères Unicode sont d'abord encodés en octets UTF-8, puis chaque octet est encodé en pourcentage.
Les fondements de l'encodage d'URL
Le protocole HTTP et les URLs ont été conçus à une époque où le jeu de caractères dominant était l'ASCII 7 bits. Or, une URL peut contenir des caractères qui ont une signification spéciale dans la syntaxe même des URLs — comme ?, &, =, # ou / — ou des caractères qui ne font tout simplement pas partie de l'ASCII, comme les lettres accentuées, les idéogrammes asiatiques ou les emojis.
L'encodage en pourcentage (percent-encoding) est la solution définie par la RFC 3986 pour résoudre ce problème. Chaque caractère problématique est remplacé par un signe % suivi de son code hexadécimal UTF-8. Par exemple :
- Espace →
%20 é→%C3%A9@→%40?→%3F(dans les valeurs de paramètres)
encodeURI vs encodeURIComponent
JavaScript propose deux fonctions natives dont les comportements sont souvent confondus :
encodeURI()
Conçue pour encoder une URL complète. Elle préserve intentionnellement tous les caractères qui ont un rôle structurel dans une URL : :, /, ?, &, =, #, @. Utilisez-la quand vous avez une URL entière à encoder.
encodeURI("https://example.com/recherche?q=café au lait")
// → "https://example.com/recherche?q=caf%C3%A9%20au%20lait"
encodeURIComponent()
Conçue pour encoder une valeur individuelle d'un paramètre. Elle encode tous les caractères spéciaux, y compris ?, &, = et /, ce qui est indispensable quand la valeur elle-même peut contenir ces symboles.
encodeURIComponent("prix=10€ & remise=20%")
// → "prix%3D10%E2%82%AC%20%26%20remise%3D20%25"
Gestion des caractères Unicode
Les caractères en dehors du plan ASCII (accents, caractères arabes, chinois, emojis...) sont d'abord convertis en octets UTF-8, puis chaque octet est exprimé en notation hexadécimale précédée d'un %. Un caractère comme € (U+20AC) nécessite 3 octets en UTF-8, ce qui donne %E2%82%AC.
Cette double conversion — Unicode vers UTF-8, puis UTF-8 vers percent-encoding — garantit que n'importe quel caractère humain peut être représenté dans une URL valide.
Quand l'encodage est-il nécessaire ?
- Paramètres de requête : toujours encoder les valeurs des paramètres
?clé=valeur. - Chemins d'URL : encoder les segments contenant des barres obliques, espaces ou caractères spéciaux.
- Données de formulaire : les navigateurs encodent automatiquement les données
application/x-www-form-urlencoded. - En-têtes HTTP : certains en-têtes comme
Locationlors d'une redirection doivent contenir des URLs correctement encodées.
Bonnes pratiques
- Utilisez
encodeURIComponentpour les valeurs,encodeURIpour les URLs complètes. - Ne double-encodez pas : si une URL contient déjà
%20, l'encoder à nouveau produira%2520, ce qui est incorrect. - Décodez toujours les paramètres côté serveur avant de les utiliser, pour éviter les injections.