Encodeur et Décodeur d'URL
Encodez et décodez en pourcentage URL, chaînes de requête et paramètres, dans votre navigateur.
Encodeur et décodeur d'URL - encodage pourcent en ligne
Une URL ne peut contenir qu'un jeu de caractères restreint. Tout le reste - espaces, accents, esperluettes, barres obliques à l'intérieur d'une valeur, emojis, textes arabes ou japonais - doit être encodé en pourcent avant de circuler dans un lien, une query string ou l'envoi d'un formulaire. Cet encodeur et décodeur d'URL gratuit effectue la conversion instantanément, dans les deux sens, sans rien envoyer à un serveur.
Collez votre texte et cliquez sur Encoder pour obtenir une chaîne prête à circuler, ou collez une URL encodée et cliquez sur Décoder pour la relire en clair. Le sélecteur de mode permet de basculer entre encodeURIComponent et encodeURI : c'est ce choix qui décide si votre lien fonctionne ou casse silencieusement.
Qu'est-ce que l'encodage d'URL ?
L'encodage d'URL, également appelé encodage pourcent, remplace un caractère non sûr par un signe pourcent suivi de sa valeur hexadécimale. Une espace devient %20, une barre oblique %2F, un point d'interrogation %3F. Les caractères hors ASCII sont d'abord convertis en octets UTF-8 puis encodés octet par octet : c'est pourquoi une seule lettre accentuée produit souvent deux groupes pourcent, et un emoji jusqu'à quatre.
encodeURIComponent ou encodeURI : quel mode choisir ?
| Situation | Mode | Raison |
|---|---|---|
| Encoder la valeur d'un paramètre | encodeURIComponent | Échappe &, =, ?, / et # pour que la valeur ne sorte pas de son champ |
| Encoder un segment de chemin comme un slug | encodeURIComponent | Empêche une barre oblique interne de créer un nouveau niveau de chemin |
| Nettoyer une URL complète existante | encodeURI | Préserve les caractères structurels, l'adresse reste une URL valide |
| Transmettre une URL de retour dans une autre URL | encodeURIComponent | L'URL interne est une valeur, pas une structure |
Comment encoder ou décoder une URL
- Collez le texte, la valeur de paramètre ou l'URL complète dans le panneau de saisie.
- Choisissez
encodeURIComponentpour une valeur isolée, ouencodeURIpour une adresse entière. - Cliquez sur Encoder pour encoder, ou sur Décoder pour faire l'inverse.
- Copiez la sortie directement dans votre code, la barre d'adresse ou votre client d'API.
Les caractères que vous croiserez le plus
%20- espace. Dans les anciens envois de formulaire,+joue le même rôle.%2F- barre oblique, encodée lorsqu'elle appartient à la valeur et non au chemin.%3Fet%26- point d'interrogation et esperluette, les deux séparateurs de paramètres.%3D- signe égal, qui sépare le nom du paramètre de sa valeur.%23- dièse, sinon interprété comme le début d'un identifiant de fragment.%2B- signe plus, qui doit être encodé sous peine d'être lu comme une espace.
Quand utiliser un encodeur d'URL
- Pour construire des liens de recherche, de filtre ou de pagination où la saisie utilisateur finit dans la query string.
- Pour transmettre une adresse de retour en
redirect_urià un fournisseur OAuth ou à une passerelle de paiement. - Pour ajouter des paramètres de campagne UTM contenant des espaces ou de la ponctuation.
- Pour décoder un long lien de tracking reçu par e-mail et voir où il pointe réellement.
- Pour déboguer un appel d'API dont un paramètre contient du JSON, un horodatage ou une signature.
- Pour gérer des slugs non latins, afin qu'un titre persan, japonais ou cyrillique survive au copier-coller.
Les erreurs qui cassent les liens
- Double encodage. Réencoder une chaîne déjà encodée transforme
%20en%2520. Décodez d'abord, puis encodez une seule fois. - Encoder toute l'URL avec encodeURIComponent. Le
://et les barres obliques sont échappés et l'adresse cesse d'être une URL. - Confondre + et %20. Dans une query string, un plus peut signifier une espace ; dans un chemin, il désigne un vrai plus.
- Oublier l'UTF-8. Les pages anciennes encodées en ISO-8859-1 produisent des groupes qu'un décodeur moderne ne sait pas rétablir.
- Faire confiance à une valeur décodée. Décoder n'est pas assainir : validez la saisie avant de l'utiliser dans une requête ou dans du HTML.
Tout se passe dans votre navigateur
L'encodeur s'appuie sur les fonctions JavaScript de votre propre navigateur : rien n'est téléversé, stocké ni journalisé. Les URL signées, les identifiants de session et les paramètres contenant des données clients restent donc là où ils doivent rester, sur votre machine.
Encoder une URL en JavaScript, Python, PHP, Java et C#
| Langage | Encoder une valeur | Remarques |
|---|---|---|
| JavaScript | encodeURIComponent(valeur) | encodeURI pour une adresse complète |
| Python | urllib.parse.quote(valeur, safe='') | quote_plus transforme les espaces en + |
| PHP | rawurlencode($valeur) | urlencode utilise + pour les espaces |
| Java | URLEncoder.encode(valeur, "UTF-8") | Produit + pour les espaces ; dans un chemin, remplacez par %20 |
| C# / .NET | Uri.EscapeDataString(valeur) | HttpUtility.UrlEncode utilise + |
| PowerShell | [uri]::EscapeDataString($valeur) | Mêmes règles que .NET |
Outils complémentaires
URL et charges utiles voyagent ensemble. Décodez le binaire embarqué avec l'encodeur Base64, lisez le jeton d'une URL de callback avec le décodeur JWT, mettez en forme la réponse avec le formateur JSON et testez vos motifs avec le testeur d'expressions régulières.