Pourquoi utiliser un encodeur URL ?
Le percent-encoding (ou URL encoding) est indispensable dès que vous manipulez des paramètres dans une URL. Les caractères spéciaux comme &, =, ? ou les espaces doivent être encodés pour ne pas casser la structure de l'URL.
Sans encodage correct, un paramètre contenant prix=10&20 serait interprété comme deux paramètres distincts (prix=10 et 20). Le navigateur ne peut pas deviner votre intention : l'encodage lève l'ambiguïté.
Trois situations où l'encodage URL est indispensable :
- Paramètres de query string → Un
&ou=dans une valeur coupe la chaîne au mauvais endroit - Paramètres UTM → Des espaces ou caractères accentués dans
utm_campaigncassent le tracking analytics - Redirections et callbacks → Les URLs imbriquées (OAuth, SSO, emails marketing) doivent être encodées intégralement
Comment utiliser l'encodeur / décodeur URL en 3 étapes
Étape 1 : Coller le contenu
Collez dans la zone de saisie :
- Du texte brut si vous voulez encoder (ex. :
prix=10€ & livraison gratuite) - Une chaîne encodée si vous voulez décoder (ex. :
prix%3D10%E2%82%AC+%26+livraison+gratuite)
Étape 2 : Sélectionner l'opération
Cliquez sur Encoder l'URL pour transformer du texte en percent-encoding, ou sur Décoder l'URL pour retrouver le texte original à partir d'une chaîne encodée.
Étape 3 : Copier le résultat
Le résultat apparaît instantanément. Cliquez sur le bouton copier pour récupérer la chaîne convertie, prête à être insérée dans votre code, URL ou configuration.
Qu'est-ce que le percent-encoding ?
Le percent-encoding est le mécanisme défini par la RFC 3986 pour représenter des caractères spéciaux dans une URI. Chaque octet non autorisé est remplacé par % suivi de deux chiffres hexadécimaux représentant sa valeur UTF-8.
Exemple concret :
Texte original : Café & Thé = 15€
Encodé : Caf%C3%A9+%26+Th%C3%A9+%3D+15%E2%82%AC
Le é (U+00E9) occupe deux octets en UTF-8 (C3 A9), d'où %C3%A9. Le symbole € (U+20AC) occupe trois octets (E2 82 AC), d'où %E2%82%AC.
Caractères non-réservés (jamais encodés)
Ces caractères passent tels quels dans une URL :
A-Z a-z 0-9 - _ . ~
Caractères réservés (encodés dans les valeurs)
| Caractère | Rôle dans l'URL | Encodé |
|---|---|---|
? | Début des paramètres | %3F |
& | Séparateur de paramètres | %26 |
= | Assignation clé/valeur | %3D |
# | Fragment (ancre) | %23 |
/ | Séparateur de chemin | %2F |
+ | Espace (query string) | %2B |
@ | Identifiant utilisateur | %40 |
Table d'encodage des caractères courants
| Caractère | Description | Encodé (query) | Encodé (path) |
|---|---|---|---|
| espace | Espace blanc | + | %20 |
& | Esperluette | %26 | %26 |
= | Signe égal | %3D | %3D |
? | Point d'interrogation | %3F | %3F |
# | Dièse | %23 | %23 |
é | E accent aigu | %C3%A9 | %C3%A9 |
ñ | N tilde | %C3%B1 | %C3%B1 |
€ | Symbole euro | %E2%82%AC | %E2%82%AC |
日 | Idéogramme CJK | %E6%97%A5 | %E6%97%A5 |
Note : La différence entre query et path concerne uniquement l'espace. En query string (application/x-www-form-urlencoded), l'espace devient +. Dans un chemin d'URL, il devient %20.
Cas d'usage concrets
Cas 1 : Paramètres UTM avec caractères spéciaux
Problème : Vous créez un lien de tracking pour une campagne nommée "Soldes été 2025 – 50%".
Sans encodage :
https://captaindns.com?utm_campaign=Soldes été 2025 – 50%
Les espaces, le tiret et le % cassent le lien. Google Analytics ne capte pas la campagne.
Avec encodage :
https://captaindns.com?utm_campaign=Soldes+%C3%A9t%C3%A9+2025+%E2%80%93+50%25
Le tracking fonctionne correctement, chaque caractère spécial est préservé.
Cas 2 : URL de callback OAuth
Problème : Vous configurez un flux OAuth et devez passer une URL de retour en paramètre.
Sans encodage :
https://auth.captaindns.com/authorize?redirect_uri=https://captaindns.com/callback?token=abc&scope=read
Le serveur interprète scope=read comme un paramètre de /authorize, pas de /callback.
Avec encodage du redirect_uri :
https://auth.captaindns.com/authorize?redirect_uri=https%3A%2F%2Fcaptaindns.com%2Fcallback%3Ftoken%3Dabc&scope=read
L'URL imbriquée est correctement isolée. Le flux OAuth fonctionne.
Cas 3 : Debug d'un lien email cassé
Problème : Un client signale qu'un lien dans votre newsletter ne fonctionne pas. Le lien brut dans l'email ressemble à :
https://captaindns.com/offre?nom=Caf%C3%A9+%26+Th%C3%A9&code=PROMO%2D20
Action : Collez la partie après ? dans le décodeur pour lire les paramètres :
nom=Café & Thécode=PROMO-20
Vous identifiez immédiatement si les valeurs sont correctes ou si un double encodage a corrompu le lien.
❓ FAQ - Questions fréquentes
Q : Quelle est la différence entre l'encodage URL et le Base64 ?
R : L'encodage URL (percent-encoding) remplace les caractères spéciaux par %XX pour les rendre compatibles avec les URLs. Le Base64 encode des données binaires (images, fichiers) en caractères ASCII. Les deux ne sont pas interchangeables : utilisez l'URL encoding pour les paramètres d'URL, le Base64 pour transmettre des données binaires dans du texte.
Q : Pourquoi les espaces deviennent-ils des + ?
R : C'est une convention du format application/x-www-form-urlencoded, utilisé par les formulaires HTML et les query strings. Dans les chemins d'URL (avant le ?), l'espace est encodé %20. Les deux représentations sont valides dans leur contexte respectif.
Q : Quels caractères ne sont pas encodés ?
R : Les 66 caractères non-réservés définis par la RFC 3986 ne sont jamais modifiés : lettres A-Z, a-z, chiffres 0-9, et quatre symboles : -, _, ., ~. Tous les autres caractères sont encodés lorsqu'ils apparaissent dans une valeur de paramètre.
Q : Puis-je encoder une URL complète ?
R : Non, encodez uniquement les valeurs des paramètres. Les séparateurs structurels (://, /, ?, &, =) doivent rester tels quels pour que l'URL reste fonctionnelle. Par exemple, encodez la valeur Café & Thé mais pas le ? ou le & qui structurent l'URL.
Q : Que se passe-t-il avec un double encodage ?
R : Un double encodage transforme %26 en %2526 (le % est ré-encodé). Le serveur reçoit alors la chaîne littérale %26 au lieu de &. C'est un piège courant dans les redirections imbriquées. Si vous suspectez un double encodage, décodez deux fois et comparez les résultats.
Q : Que se passe-t-il avec un encodage invalide ?
R : Si vous tentez de décoder une séquence invalide (par exemple %GG ou un % isolé), l'outil affiche un message d'erreur explicatif au lieu d'un résultat corrompu. Corrigez la séquence source avant de réessayer.
Outils complémentaires
| Outil | Utilité |
|---|---|
| Encodeur Base64 | Encodez des données binaires en ASCII pour les API et webhooks |
| Générateur de slug | Transformez un titre en URL propre, sans caractères spéciaux |
| Compteur de mots | Vérifiez la longueur de vos paramètres avant de les encoder |
| Convertisseur de casse | Convertissez du texte en camelCase, snake_case ou kebab-case pour vos variables |
| Générateur de mot de passe | Créez des mots de passe aléatoires à intégrer dans vos URLs sécurisées |
| Générateur de hash | Calculez MD5, SHA-256 ou SHA-512 pour vérifier l'intégrité de vos données |
Ressources utiles
- RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax (spécification officielle du percent-encoding)
- RFC 3987 – Internationalized Resource Identifiers (IRIs) (extension de la RFC 3986 pour les caractères Unicode)
- MDN – encodeURIComponent() (référence JavaScript de l'encodage URL)
- WHATWG URL Standard (spécification vivante du parsing et de la sérialisation des URLs)