Aller au contenu
Outil gratuit

Encodeur et décodeur d’URL – encoder et décoder une URL en ligne

Encode et décode des URL directement dans ton navigateur : l’encodeur d’URL convertit le texte et les URL en encodage en pourcentage. Un espace devient %20 et « ä » devient %C3%A4. Le décodeur d’URL transforme les séquences % en texte lisible. Compare encodeURIComponent, encodeURI et le format formulaire avec +, consulte les paramètres de requête décodés d’une URL et crée des chaînes de requête et des liens UTM. Gratuit, sans inscription : ton texte reste dans ton navigateur.

Créé par Dimitri Heissler

Tu développes ton propre projet ? Héberge-le sur un VPS avec un contrôle total.

Encode tout sauf les lettres, les chiffres et les caractères -_.~!*'(). Adapté aux valeurs de paramètres individuelles, aux segments de chemin et à tout contenu intégré dans une URL.

Ton texte reste dans ton navigateur : il n’est ni envoyé ni enregistré.

Caractères dans la saisie
0
Caractères dans le résultat
0
Caractères encodés
0
Octets en entrée
0

Créer une chaîne de requête et un lien UTM

Saisis le nom et la valeur de chaque paramètre, ou ajoute les trois champs d’un lien de campagne avec « Paramètres UTM ». Chaque valeur est encodée séparément : un & ou un = dans la valeur ne peut donc pas casser l’URL.

0 paramètres dans l’URL

Exemple de résultat

Ce que cet encodeur et décodeur d’URL te montre

Colle un texte ou une URL pour obtenir immédiatement le résultat encodé ou décodé. Lors de l’encodage, tu obtiens aussi la liste des caractères remplacés et de leurs octets ; lors du décodage d’une URL, ses paramètres de requête sont affichés séparément et lisiblement. Trois exemples :

Exemple 1 : encoder une valeur

Saisie (variante composant, encodeURIComponent) :

Müller & Söhne : 50 % de réduction ?

Résultat :

M%C3%BCller%20%26%20S%C3%B6hne%C2%A0%3A%2050%E2%80%AF%25%20de%20r%C3%A9duction%E2%80%AF%3F
Caractères remplacés dans le premier exemple
CaractèresOctetsRésultat
üC3 BC%C3%BC
Espaces20%20
&26%26
öC3 B6%C3%B6
 C2 A0%C2%A0
:3A%3A
 E2 80 AF%E2%80%AF
%25%25
éC3 A9%C3%A9
?3F%3F

Résultat en clair : 36 caractères deviennent 90 caractères. 15 caractères ont été remplacés. Le ü occupe deux octets et devient %C3%BC, le & devient %26 et le % lui-même devient %25. Les lettres et les chiffres restent inchangés.

Exemple 2 : décoder et décomposer une URL

Saisie (variante formulaire, + est interprété comme une espace) :

https://example.com/search?q=tomates%20vertes&sort=price_asc&category=Fruits%20%2B%20l%C3%A9gumes

Résultat :

https://example.com/search?q=tomates vertes&sort=price_asc&category=Fruits + légumes
Paramètres de requête du deuxième exemple
NomValeur (décodée)Brut
qtomates vertestomates%20vertes
sortprice_ascprice_asc
categoryFruits + légumesFruits%20%2B%20l%C3%A9gumes

Résultat en clair : l’URL comporte 3 paramètres de requête. La valeur de « q » est « tomates vertes », celle de « sort » est « price_asc » et celle de « category » est « Fruits + légumes ». Le signe plus dans « Fruits + légumes » est encodé en %2B et reste donc un signe plus.

Exemple 3 : la même URL, quatre variantes

Saisie :

https://example.com/rue/À propos de nous?q=Fromage#contact
Résultat des quatre variantes pour la même URL
VarianteRésultat
Composant (encodeURIComponent)https%3A%2F%2Fexample.com%2Frue%2F%C3%80%20propos%20de%20nous%3Fq%3DFromage%23contact
URL complète (encodeURI)https://example.com/rue/%C3%80%20propos%20de%20nous?q=Fromage#contact
Strict (RFC 3986)https%3A%2F%2Fexample.com%2Frue%2F%C3%80%20propos%20de%20nous%3Fq%3DFromage%23contact
Formulaire (+ pour les espaces)https%3A%2F%2Fexample.com%2Frue%2F%C3%80+propos+de+nous%3Fq%3DFromage%23contact

Résultat en clair : seul « URL complète (encodeURI) » conserve https://, /, ? et # : l’adresse reste accessible. Les trois autres variantes encodent aussi ces séparateurs et transforment l’adresse en une seule longue valeur. C’est ce qu’il faut si tu souhaites intégrer l’URL entière comme valeur dans une autre URL.

Comment ça fonctionne

Comment tu encodes et décodes une URL

Quatre étapes du texte à l’URL finale – sans compte ni téléchargement.

Étape 1

Coller du texte ou une URL

Colle le texte à encoder ou l’URL encodée à lire. « Exemple » charge un exemple de texte. Le résultat s’affiche dès que tu tapes, sans bouton à presser.

Étape 2

Choisir le sens, la variante et le jeu de caractères

Choisis « Encoder » ou « Décoder ». Pour une valeur seule, utilise encodeURIComponent ; pour une URL entière, encodeURI ; et pour les données d’un formulaire HTML, le format formulaire avec +. Pour l’encodage, tu disposes aussi de la variante stricte selon RFC 3986 et de l’option « Encoder chaque ligne séparément ». Choisis UTF-8 ou ISO-8859-1 comme jeu de caractères.

Étape 3

Vérifier et copier le résultat

L’outil indique le nombre de caractères remplacés, affiche lors de l’encodage leur valeur Unicode et leurs octets, et signale un double encodage, des séquences % invalides ou l’utilisation d’une mauvaise variante pour une URL entière. Utilise « Copier » pour récupérer le résultat.

Étape 4

Lire ou créer des paramètres

Lors du décodage d’une URL, l’outil affiche ses composants et ses paramètres de requête décodés dans un tableau. Dans la section « Créer une chaîne de requête et un lien UTM », saisis un nom et une valeur ou ajoute les champs d’un lien de campagne avec « Paramètres UTM », puis copie l’URL encodée.

Variantes

encodeURIComponent, encodeURI ou formulaire : quelle méthode choisir et quand ?

Les quatre variantes suivent le même principe de codage, mais remplacent un nombre différent de caractères. Choisis selon ce que tu encodes, et non au hasard.

Composant (encodeURIComponent)
Pour une valeur individuelle : valeur de paramètre, segment de chemin, nom de fichier ou URL utilisée comme paramètre dans une autre URL. Encode tout sauf les lettres, les chiffres et les caractères -_.~!*'(). En cas de doute, choisis cette option.
Correspond environ à : encodeURIComponent / decodeURIComponent
URL complète (encodeURI)
Pour une URL complète contenant encore des espaces ou des trémas. Laisse ; , / ? : @ & = + $ # inchangés pour que l’adresse fonctionne. N’encode pas les & ou = contenus dans une valeur : ne convient pas à cet usage.
Correspond environ à : encodeURI / decodeURI
Strict (RFC 3986)
Comme Composant, mais encode aussi ! ' ( ) *. Nécessaire si un autre système interprète ces caractères comme des séparateurs, par exemple lors de la signature de requêtes OAuth.
Correspond environ à : PHP rawurlencode, Python urllib.parse.quote(wert, safe='')
Formulaire (+ pour les espaces)
Le format des formulaires HTML (application/x-www-form-urlencoded). Les espaces deviennent des + ; seuls les lettres, les chiffres et *-._ restent inchangés, ~ devient %7E. S’applique aux chaînes de requête des formulaires et aux corps des requêtes POST de ce type. PHP urlencode et Python quote_plus diffèrent légèrement pour * et ~.
Correspond environ à : Java URLEncoder, JavaScript URLSearchParams

Table de caractères

Caractères spéciaux dans les URL et leur encodage

Voici comment les caractères spéciaux les plus courants sont encodés selon la variante. Un tiret indique que le caractère reste inchangé.

Encodage des caractères spéciaux : composant, URL complète et formulaire
CaractèresComposantURL complèteFormulaire
EspacesEspaces, souvent représentés par + dans les chaînes de requête%20%20+
!Sous-délimiteur, sans signification fixe––%21
"non autorisé dans les URL%22%22%22
#Début du fragment (ancre)%23–%23
$Sous-délimiteur, sans signification fixe%24–%24
%introduit un encodage %XX%25%25%25
&sépare les paramètres de requête%26–%26
'Sous-délimiteur, sans signification fixe––%27
(Sous-délimiteur, sans signification fixe––%28
)Sous-délimiteur, sans signification fixe––%29
*Délimiteur inférieur, arrêt à encodeURIComponent–––
+Signe plus, remplacé par un espace dans les formulaires%2B–%2B
,sépare les valeurs d’une liste%2C–%2C
/sépare les segments du chemin%2F–%2F
:sépare le protocole, l’hôte et le port%3A–%3A
;Sous-délimiteur, sans signification fixe%3B–%3B
=sépare le nom du paramètre et sa valeur%3D–%3D
?Début de la requête%3F–%3F
@sépare le nom d’utilisateur et l’hôte%40–%40
[uniquement pour les adresses IPv6 dans l’hôte%5B%5B%5B
]uniquement pour les adresses IPv6 dans l’hôte%5D%5D%5D
~non protégé ; seul le format du formulaire l’encode (%7E)––%7E
ä%C3%A4%C3%A4%C3%A4
€%E2%82%AC%E2%82%AC%E2%82%AC
😀%F0%9F%98%80%F0%9F%98%80%F0%9F%98%80

Paramètres UTM

Créer un lien UTM : bien renseigner les paramètres UTM

Les paramètres UTM sont ajoutés à un lien pour que Google Analytics sache d’où viennent les visiteurs. Dans l’outil, le générateur de chaînes de requête ajoute, avec « Paramètres UTM », les trois champs habituels utm_source, utm_medium et utm_campaign, puis encode chaque valeur séparément pour que les espaces et caractères spéciaux ne cassent pas le lien.

Les cinq paramètres UTM et leur signification
ParamètreSignificationIndication
utm_sourceLa provenance du visiteur, par exemple newsletter, google ou instagram.courant
utm_mediumPar quel canal, par exemple e-mail, cpc ou social.courant
utm_campaignNom de la campagne, par exemple sommer-aktion.courant
utm_termLe mot-clé utilisé dans la recherche payante.facultatif
utm_contentLa variante sur laquelle un clic a été effectué, par exemple banner ou textlink.facultatif

Exemple : un lien vers une newsletter

URL de base et trois paramètres :

https://example.com/aktion
utm_source = newsletter
utm_medium = e-mail
utm_campaign = Promotion d’été

Résultat :

https://example.com/aktion?utm_source=newsletter&utm_medium=e-mail&utm_campaign=Promotion%20d%E2%80%99%C3%A9t%C3%A9

Écris les valeurs en minuscules et sans espaces, par exemple sommer-aktion. Analytics distingue « Newsletter » de « newsletter » et les comptabilise séparément.

Découvrir plus

Autres outils

FAQ

Questions fréquentes sur l’encodeur et le décodeur d’URL

Réponses courtes sur l’encodage URL, le signe pourcentage et cet outil.

Seuls certains caractères sont autorisés dans une URL. Tous les autres sont représentés par un % suivi de deux chiffres hexadécimaux, pour chaque octet du caractère en UTF-8. Un espace devient %20, « ä » devient %C3%A4 (deux octets), « € » devient %E2%82%AC (trois octets) et un emoji comme 😀 devient %F0%9F%98%80 (quatre octets). Cette méthode s’appelle l’encodage en pourcentage, ou URL Encoding ; les développeurs parlent aussi d’URL Encode et, pour l’opération inverse, d’URL Decode.

%20 est un espace encodé : 20 est la valeur hexadécimale de l’espace. De même, %3D représente =, %26 représente &, %2F représente / et %2C représente une virgule. %20 fonctionne partout dans une URL. Le + pour représenter un espace n’existe que dans le format formulaire (application/x-www-form-urlencoded), utilisé dans les chaînes de requête produites par un formulaire HTML. Dans un chemin, + est un vrai signe plus. « Käse & Brot » devient « K%C3%A4se+%26+Brot » comme valeur de formulaire et « K%C3%A4se%20%26%20Brot » avec encodeURIComponent. Lors du décodage, choisis donc « Formulaire » pour les données provenant de formulaires et de recherches.

encodeURI conserve les séparateurs d’une URL : ; , / ? : @ & = + $ #. encodeURIComponent les encode également. « a/b?c=d » devient « a/b?c=d » avec encodeURI et « a%2Fb%3Fc%3Dd » avec encodeURIComponent. Utilise encodeURI pour une adresse complète. Pour une valeur insérée dans une URL, utilise encodeURIComponent, sinon un & ou un = dans la valeur peut séparer les paramètres.

Choisis « Décoder » et colle l’URL ou le texte encodé ci-dessus. « M%C3%BCller%20%26%20S%C3%B6hne » devient « Müller & Söhne ». Pour une URL, l’outil décompose aussi l’adresse en éléments comme le schéma, l’hôte, le chemin, la requête et le fragment. Il affiche les paramètres de requête dans un tableau avec leur nom, leur valeur décodée et leur valeur brute : par exemple, q = tomates vertes au lieu de gr%C3%BCne%20Tomaten. Les paramètres suivent le ?, le nom et la valeur sont séparés par =, et plusieurs paramètres par &. Pour les données issues d’un formulaire ou d’une recherche, choisis la variante « Formulaire » afin qu’un + soit interprété comme un espace.

Les lettres A à Z et a à z, les chiffres 0 à 9 et les caractères -_.~ restent inchangés ; seul le format formulaire encode le tilde en %7E. Les séparateurs : / ? # [ ] @ ! $ & ' ( ) * + , ; = ne sont autorisés que dans leur rôle, par exemple & entre deux paramètres. Il faut notamment encoder les espaces, les guillemets, %, < > ^ { | } et tous les caractères non ASCII, comme les lettres accentuées et les emojis. encodeURIComponent laisse aussi ! * ' ( ) inchangés ; la variante stricte selon RFC 3986 les encode également. Le tableau des caractères plus haut présente les caractères spéciaux les plus courants et leur résultat.

Pas directement : ils sont encodés. En UTF-8, les lettres comme « ä », « ß », « é », « ñ » ou « å » occupent chacune deux octets : « ä » devient %C3%A4, « ß » devient %C3%9F, « é » devient %C3%A9, « ñ » devient %C3%B1 et « å » devient %C3%A5. Un espace devient %20, ou + dans les formulaires. Les navigateurs affichent souvent l’adresse sous une forme lisible et ne l’encodent qu’au moment de l’envoi. Pour les liens que tu écris toi-même, encode la valeur avec encodeURIComponent ou cet outil ; le tableau « Ce qui arrive à tes caractères » affiche alors la valeur Unicode et les octets des caractères remplacés. Les caractères accentués d’un nom de domaine ne sont pas encodés en pourcentage, mais convertis en Punycode (müller.de devient xn--mller-kva.de) ; cet outil ne le fait pas.

Si un texte déjà encodé est encodé une seconde fois, % devient %25 : « %20 » devient « %2520 ». Tu peux le reconnaître à %25 suivi de deux chiffres, ainsi qu’aux séquences %XX qui restent dans le résultat après décodage. L’outil te le signale et propose « Décoder à nouveau ». Pour éviter cela, encode chaque valeur une seule fois, au moment de construire l’URL.

Aujourd’hui, UTF-8 est la norme : « ä » y correspond à %C3%A4. Les sites et systèmes plus anciens utilisent parfois ISO-8859-1 (Latin-1), où « ä » correspond à %E4 et « é » à %E9. Un %E4 isolé est invalide en UTF-8 : l’outil indique sa position et propose « Utiliser ISO-8859-1 ». Avec ce jeu de caractères, « K%E4se » redevient « Käse ». Les caractères absents d’ISO-8859-1, comme « € », ne peuvent pas être encodés ainsi : repasse alors en UTF-8.

Non. L’encodage et le décodage se font dans ton navigateur : ton texte n’est ni téléversé ni enregistré. Cela vaut aussi pour les URL contenant des jetons ou des identifiants. L’outil est gratuit et utilisable sans inscription.

D’autres questions ?

Contacter le support
Tu crées ton propre projet ?

Ton application a besoin d’un serveur qui dessert ses URL de manière fiable

Un VPS ZAP-Hosting met ton application ou ton projet en ligne de manière fiable.

4,4/5 Trustpilot32 000+ Serveurs actifsDepuis 2010

Sans configuration. Sans risque. En ligne en quelques secondes.

Durée flexibleRésiliable à tout momentEn ligne en 60 secondes

Tu cherches d’autres outils ? Voir tous les outils de développement