Encodé en Pourcentage

Texte Décodé

C’est quoi le Décodeur d’URL ?

Colle une chaîne encodée en pourcentage dans le panneau de gauche et le panneau de droite affiche l’original. Sous le capot, il exécute decodeURIComponent, qui parcourt chaque séquence %XX de l’entrée, traite ces paires hexadécimales comme des octets UTF-8, et reconstruit les caractères originaux. Donc %20 devient un espace, %26 devient &, %E2%9C%85 devient une coche. Le sens inverse vit sur l’Encodeur d’URL.

Pourquoi le décodage est-il délicat ? Parce que tous les % dans la nature ne font pas partie d’une séquence valide encodée en pourcentage. Un % isolé suivi de caractères non hexadécimaux (%G1, % en fin de chaîne) est mal formé et le décodeur lèvera une URIError: URI malformed. Cette page attrape ça et affiche un message amical "Encodage invalide" plutôt qu’une stack trace, donc un copier-coller corrompu ne casse pas la page. Les règles exactes de ce qui compte comme valide vivent dans le RFC 3986 §2.1 et le Standard URL WHATWG.

Attention au double-encodage. Si tu décodes une chaîne et que la sortie contient TOUJOURS des caractères % (par exemple tu récupères Ava%2520Chen au lieu de Ava Chen), la valeur a été encodée deux fois quelque part dans la chaîne — généralement un proxy ou un framework qui a auto-encodé une valeur déjà encodée. Décoder à nouveau te mènera au reste du chemin. Les notes de Wikipedia sur le double encodage ont une bonne explication. Tout tourne dans ton navigateur. Pas d’envoi, pas de serveur, pas de logs.

Comment Utiliser le Décodeur d’URL

Trois étapes. La page se met à jour pendant que tu tapes — pas de bouton Convertir.

1

Colle ta chaîne encodée ou clique sur Exemple

Dépose une chaîne encodée en pourcentage dans le panneau de gauche. Clique sur Exemple pour charger un cas réaliste. Entrée d’exemple :

Ava%20Chen%20%26%20friends%3F%20customer%40shop.com%20%20100%25%20off!

Une entrée mal formée (un <code>%</code> isolé, une paire hexadécimale invalide comme <code>%G1</code>) apparaîtra comme un message "Encodage invalide" dans le panneau de sortie — voir la <a href="https://tc39.es/ecma262/#sec-decodeuricomponent-encodeduricomponent" target="_blank" rel="noopener">spécification ECMAScript pour decodeURIComponent</a> pour les règles exactes d’échec.

2

Lis la sortie décodée

Le panneau de droite affiche le texte décodé. %20 devient un espace, %26 devient &, %3F devient ?, %40 devient @, %25 devient %. Mise à jour en direct.

3

Copie ou télécharge

Clique sur Copier pour mettre le texte décodé dans ton presse-papiers, ou sur Télécharger pour le sauvegarder en fichier .txt. Utilise Effacer sur le panneau d’entrée pour repartir de zéro. Pour aller dans l’autre sens, passe sur l’Encodeur d’URL.

Quand Tu Vas Vraiment t’en Servir

Lire ce qu’il y a vraiment dans un paramètre de requête

Une URL comme ?customer=Ava%20Chen&tag%5B0%5D=red est dure à lire avec les codes de pourcentage encore en place. Colle une seule valeur ici et tu récupères Ava Chen ou tag[0], ce qui rend évident si le paramètre est ce que tu attendais. Pour décortiquer une URL complète, l’Analyseur d’URL traite les paramètres de requête automatiquement.

Déboguer des valeurs doublement encodées

Tu colles Ava%2520Chen, tu décodes une fois, tu obtiens Ava%20Chen. Cette couche supplémentaire est la preuve — quelque part un proxy, framework ou bibliothèque a encodé la valeur une deuxième fois. Décode à nouveau pour obtenir la vraie chaîne. Les spécifications OAuth sont des coupables fréquents parce que les valeurs redirect_uri traversent souvent des couches qui les ré-encodent serviablement.

Inspecter des URLs de webhooks et d’analytics depuis les logs

Quand quelque chose plante en production, l’URL dans le log d’accès est généralement entièrement encodée — %7B%22event%22%3A%22signup%22%7D au lieu du JSON que le webhook a vraiment envoyé. Colle-la ici et tu récupères {"event":"signup"}, qui est quelque chose que tu peux lire.

Décoder un magic link ou une URL de réinitialisation de mot de passe

Quand un client comme Marco Rivera dit "le lien de réinitialisation est cassé", le lien contient un token, un email et une cible de redirection — tous encodés en pourcentage. Décoder le paramètre suspect montre si l’email est la bonne adresse, si le token a survécu à un mangling de client mail, ou si l’URI de redirection a été tronquée.

Questions Fréquentes

Que se passe-t-il avec une entrée mal formée comme un % isolé ou %G1 ?

Le decodeURIComponent natif lève une URIError: URI malformed sur une séquence qui n’est pas une paire hexadécimale %XX valide. Cette page attrape ça et écrit "Encodage invalide : ..." dans le panneau de sortie au lieu de planter. Les causes les plus fréquentes sont un % littéral isolé qui aurait dû être %25, ou un copier-coller qui a perdu un chiffre hexadécimal final.

Comment savoir si mon entrée est doublement encodée ?

Décode une fois. Si la sortie contient encore des caractères % (en particulier %20, %2F, %3A) et qu’elle était censée être du texte brut, elle a été encodée deux fois. Décode la sortie du premier décodage. Trois passes est rare mais possible — ça signifie généralement une chaîne de trois services différents qui ont chacun encodé la même valeur.

Et les signes + — devraient-ils se décoder en espaces ?

Pas avec decodeURIComponent — il laisse les + tranquilles. La convention +-comme-espace appartient à application/x-www-form-urlencoded (soumissions de formulaires HTML), pas à l’encodage pourcentage général d’URL. Si ton entrée vient d’un corps de formulaire et a des + pour les espaces, fais .replace(/\+/g, "%20") d’abord, puis décode. La spécification WHATWG pour application/x-www-form-urlencoded décrit cette situation à deux saveurs.

Est-ce que ça gère correctement Unicode et les emojis ?

Oui. Les séquences UTF-8 multi-octets encodées en pourcentage (par exemple %E2%9C%85 pour une coche, %F0%9F%9A%80 pour une fusée) se décodent directement vers les caractères originaux. La seule façon que ça échoue est si l’encodeur a utilisé un charset non-UTF-8, ce que les systèmes modernes ne font pas.

L’entrée que je colle ici est-elle envoyée quelque part ?

Non. Le décodage tourne entièrement dans ton navigateur. Aucun appel réseau, aucun log serveur, rien ne quitte ta machine. Tokens, emails, URLs signées — tout est sûr à coller.

Quelle taille de chaîne puis-je décoder ici ?

Il y a un plafond de 256 Ko sur l’entrée. Si tu as des centaines de Ko de texte encodé en pourcentage, tu as presque certainement un payload qui devrait être décodé côté serveur plutôt que collé dans un outil — des payloads encodés aussi gros indiquent généralement un mauvais usage de l’encodage URL pour un travail qui veut du base64 ou un corps de requête.

Autres Outils URL et Encodage

Le décodage est une seule opération. Voici ce qui s’associe naturellement avec :