Encodeur/Décodeur URL

Publicité

Entrez du texte à encoder pour les URLs, ou collez du texte encodé pour le décoder.

?Encoder convertit le texte lisible en format URL sur avec encodage en pourcentage. Décoder inverse le processus.
?Composant: encode tous les caractères spéciaux (idéal pour les valeurs de requête). URL Complète: préserve la structure comme :/?#. Formulaire: utilise + pour les espaces (format application/x-www-form-urlencoded).
?Lorsque activé, la sortie se met à jour en temps réel. Désactivez pour les textes volumineux et utilisez Ctrl+Entrée pour traiter manuellement.
Entrée
Sortie

Comment Utiliser

  1. Entrez du texte à encoder pour utilisation URL, ou collez du texte encodé pour décoder en forme lisible.
  2. Choisissez le mode Composant pour les paramètrès, URL Complète pour la structure, ou Formulaire pour le format application/x-www-form-urlencoded.
  3. Consultez le résultat mis à jour en direct et copiez la sortie encodée/décodée. Plusieurs lignes sont traitées indépendamment.
Cet outil vous a-t-il été utile ?
Souhaitez-vous nous en dire plus ?
0/500
Souhaitez-vous un suivi ?
Merci pour votre retour !
Publicité

À propos de cet outil

L'encodage URL, formellement connu sous le nom d'encodage en pourcentage, est le mécanisme par lequel les caractères spéciaux sont transformés dans un format pouvant être transmis en toute sécurité au sein des Identifiants de Ressource Uniformes (URI). Défini dans le RFC 3986, ce standard garantit que chaque caractère d'une adresse web est sans ambiguïté et correctement interpréété par les navigateurs, serveurs et systèmes intermédiaires. Les caractères en dehors de l'ensemble non réservé—lettres, chiffres, tirets, points, underscores et tildes—doivent être représentés par un signe de pourcentage suivi de deux chiffres hexadécimaux correspondant à la valeur en octets du caractère. Le concept d'URI a été formalisé par Tim Berners-Lee en 1994 dans le cadre de l'architecture fondatrice du World Wide Web. Puisque la spécification URI originale était limitée au jeu de caractères ASCII (seulement 128 caractères), un mécanisme était nécessaire pour représenter la vaste gamme de caractères utilisés dans les langues humaines à travers le monde. L'encodage en pourcentage a comblé cette lacune en convertissant chaque octet d'un caractère encodé en UTF-8 en sa représentation hexadécimale préfixée par %. Alors que le web devenait véritablement mondial, le besoin de caractères non-ASCII dans les adresses web a conduit au développement des Identifiants de Ressource Internationalisés (IRI), définis dans le RFC 3987. Les IRI étendent la syntaxe URI pour permettre les caractères Unicode directement dans certains composants, tout en s'appuyant sur l'encodage en pourcentage lorsque l'adresse doit être transmise via des protocoles ne supportant que l'ASCII. Les navigateurs modernes affichent les IRI sous forme décodée pour la lisibilité mais les convertissent en URI encodés pour les requêtes réseau. Cet outil implémente les opérations d'encodage et de décodage entièrement dans votre navigateur à l'aide des fonctions natives JavaScript, garantissant que vos données ne sont jamais transmises à un serveur. Il prend en charge l'encodage au niveau des composants pour les valeurs de paramètrès individuelles ainsi que l'encodage URL complet préservant les délimiteurs structurels d'une adresse web.

Sources: IETF

Science et Histoire de l'Encodage en Pourcentage

L'encodage en pourcentage est ne d'une contrainte fondamentale des débuts d'internet : la limitation ASCII. Lorsque Tim Berners-Lee a conçu la syntaxe URL en 1994, la spécification du Localisateur Uniforme de Ressources (RFC 1738) restreignait les adresses web à un petit sous-ensemble de caractères ASCII. Cela avait du sens pour l'internet predominamment anglophone du début des années 90, mais signifiait que tout caractère en dehors de cet ensemble sur nécessitait un mécanisme de représentation. La solution était d'une élégante simplicité : représenter chaque octet non sur par un signe de pourcentage suivi de sa valeur hexadécimale a deux chiffres. Un espace (valeur d'octet 32, hex 20) devient %20, un point d'interrogation (valeur 63, hex 3F) devient %3F. Ce schéma pouvait représenter toute valeur d'octet de 00 a FF, le rendant capable d'encoder tout caractère dans tout jeu de caractères. L'introduction d'UTF-8 comme encodage standard du web a transforme l'encodage en pourcentage d'un simple schéma de mappage d'octets en un système d'encodage multi-octets. Un seul caractère chinois peut nécessiter trois octets en UTF-8, produisant trois triplets consécutifs. Le signe euro, par exemple, occupe trois octets (E2, 82, AC) et devient la séquence de six caractères %E2%82%AC. C'est pourquoi les URLs encodees contenant du texte non-latin peuvent paraître considérablement plus longues. RFC 3986, publie en 2005, a affine la spécification URL originale et formalise les règles modernes de l'encodage en pourcentage. Il a établi le concept d'ensembles de caractères reserves et non reserves, clarifiant lesquels servent de delimiteurs structurels dans les URLs. Cette distinction explique pourquoi deux fonctions d'encodage existent en JavaScript : encodeURI preserve les caractères structurels pour les URLs complétés, tandis qu'encodeURIComponent encode tout pour une intégration sure dans les composants d'URL. La spécification a égalementt introduit le principe de normalisation, définissant quand deux URLs différemment encodees doivent être considérées équivalentes.

Méthodologie

L'encodage URL remplace les caractères ASCII non sûrs par un signe de pourcentage (%) suivi de deux chiffres hexadécimaux représentant la valeur en octets du caractère. Par exemple, un espace devient %20 (hex 20 = décimal 32), une esperluette devient %26 et un signe plus devient %2B. L'encodage suit le RFC 3986, qui définit l'ensemble des caractères non réservés ne nécessitant jamais d'encodage : lettres majuscules et minuscules (A-Z, a-z), chiffres (0-9) et quatre caractères spéciaux (tiret, point, underscore, tilde). Cet outil propose deux modes d'encodage correspondant directement aux fonctions natives de JavaScript. Le mode Composant utilise encodeURIComponent(), qui encode tous les caractères sauf l'ensemble non réservé, le rendant idéal pour les valeurs de paramètres de requête où des caractères comme & et = doivent être échappés. Le mode URL Complete utilise encodeURI(), qui préserve en plus les caractères structurels d'URL comme : / ? # [ ] @ ! $ & ' ( ) * + , ; = pour qu'une URL complété reste fonctionnelle après l'encodage. Pour les caractères internationaux et les emojis, l'outil convertit d'abord le texte en sa représentation d'octets UTF-8, puis encode chaque octet individuellement. Un seul caractère Unicode comme le signe euro peut produire plusieurs triplets encodés (%E2%82%AC) car UTF-8 utilise un encodage de longueur variable d'un à quatre octets par caractère.

Sources: IETF

Comprendre vos Résultats

Utilisez le mode Composant (encodeURIComponent) chaque fois que vous encodez une valeur qui sera placée après un signe égal dans une chaîne de requête. Cela garantit que les caractères comme &, = et # dans votre valeur ne brisent pas accidentellement la structure de l'URL. Utilisez le mode URL Complète (encodeURI) lorsque vous avez une URL complète et souhaitez uniquement encoder les espaces et les caractères non-ASCII tout en gardant les délimiteurs structurels intacts. Si vous voyez %25 dans votre sortie, cela signifie que le signe de pourcentage lui-même a été encodé, ce qui indique généralement un double encodage—l'entrée était déjà encodée avant votre traitement. Décoder ces chaînes deux fois récupérera le texte original. C'est l'une des erreurs d'encodage URL les plus courantes dans les applications web et APIs. Le décodage est utile pour rendre les URLs lisibles lors du débogage, analyser les journaux serveur ou inspecter les paramètres de requête contenant des valeurs encodées. Les noms de domaine internationaux (IDN) utilisent un encodage différent appelé Punycode plutôt que l'encodage en pourcentage, donc les noms de domaine avec des caractères non-latins nécessitent un traitement séparé. Encodez toujours les saisies utilisateur avant de les insérer dans les URLs pour prévenir les attaques par injection.

Exemples Pratiques

Paramètre de requête de recherche : encoder 'coffee & tea' en mode Composant produit 'coffee%20%26%20tea', échappant en sécurité les espaces et l'esperluette pour que le serveur reçoive le texte littéral. Soumission de formulaire : un utilisateur entre 'price=50$', qui doit être encode en 'price%3D50%24' pour empêcher le signe égal d'être interpréete comme séparateur clé-valeur. URLs de redirection API : lors du passage d'une URL de callback comme 'https://app.com/auth?token=abc' en paramètre à une autre URL, le mode Composant encode l'ensemble du callback y compris sa propre chaîne de requête. Contenu multilingue : l'encodage de texte japonais produit des séquences d'octets UTF-8 sous forme de triplets en pourcentage. Décodage de débogage : collez une URL complété depuis les journaux serveur et décodez-la pour voir instantanément la requête originale pour un dépannage rapide.

Conseils et Bonnes Pratiques

Utilisez toujours le mode Composant lors de l'encodage de valeurs individuelles de paramètres de requête. Le mode URL Complete laisse les caractères structurels comme & et = non encodés, ce qui cassera votre URL si ces caractères apparaissent dans les données elles-mêmes plutôt que comme délimiteurs. Évitez le double encodage en vérifiant si votre entrée est déjà encodée. Si vous voyez des séquences comme %20 ou %26 dans l'entrée, décodez d'abord avant de re-encoder pour éviter l'empilement (où %20 devient %2520). Lors de la construction programmatique d'URLs, encodez chaque valeur de paramètre séparément puis assemblez l'URL complété. N'encodez jamais la chaîne URL entière en une fois, car cela corromprait les caractères structurels séparant le schéma, l'hôte, le chemin et les composants de requête. Pour déboguer les appels API, collez l'URL encodée complété en mode décodage pour lire rapidement toutes les valeurs de paramètres sous forme lisible. Cela est particulièrement utile pour résoudre les URLs de webhooks ou les redirections OAuth contenant des valeurs encodées imbriquées.

Encodages URL Courants

Caractère Nom Encodé Formulaire
(space)Space%20+
!Exclamation%21%21
#Hash%23%23
$Dollar%24%24
%Percent%25%25
&Ampersand%26%26
'Apostrophe%27%27
+Plus%2B%2B
,Comma%2C%2C
/Slash%2F%2F
:Colon%3A%3A
;Semicolon%3B%3B
=Equals%3D%3D
?Question%3F%3F
@At sign%40%40

Tous les calculs sont effectués localement dans votre navigateur. Aucune donnée n'est envoyée à un serveur.

Intégrer cet outil

Obtenir le code

Questions fréquentes

Quelle est la différence entre le mode Composant et URL Complète?
Le mode Composant encode TOUS les caractères spéciaux y compris /, ?, & et =, idéal pour les valeurs de paramètrès. Le mode URL Complète préserve les caractères de structure comme :, /, ? et # tout en encodant les espaces et caractères non-ASCII.
Quels caractères sont encodés?
En mode Composant, tout sauf les lettres, chiffres et - _ . ! ~ * ' ( ) est encodé. En mode URL Complète, les caractères ayant une signification spéciale comme : / ? # sont préservés. Les espaces deviennent %20 et les caractères non-ASCII comme é deviennent %C3%A9.
Puis-je encoder plusieurs valeurs à la fois?
Oui! Entrez plusieurs valeurs sur des lignes séparées et chaque ligne sera encodée ou décodée indépendamment. C'est utile pour le traitement par lots de paramètrès de requête, chemins de fichiers ou toute liste de chaînes.
Pourquoi dois-je encoder les URLs?
Les URLs ne peuvent contenir que certains caractères ASCII. Les caractères spéciaux comme les espaces, &, = et les lettres non-anglaises doivent être encodés pour être transmis en toute sécurité. Sans encodage, les espaces cassent les URLs et les symboles & interfèrent avec les paramètrès.
Quel standard cet outil suit-il pour l'encodage d'URL ?
Cet outil implémente le pourcentage d'encodage tel que défini dans RFC 3986 (Uniform Resource Identifier : Generic Syntax). Il utilise les fonctions JavaScript intégrées encodeURIComponent() pour le mode composant et encodeURI() pour le mode URL complète, toutes deux conformes à la spécification RFC 3986. Les caractères sont encodés en signe pourcentage suivi de leurs valeurs d'octets UTF-8 en hexadécimal (ex. un espace devient %20).
Cet outil gère-t-il les caractères internationaux et les emojis ?
Oui. L'outil prend entièrement en charge l'encodage UTF-8, ce qui signifie que les caractères internationaux (lettres accentuées, chinois, arabe, japonais, coréen, etc.) et les emojis sont correctement encodés en séquences de pourcentage multi-octets. Par exemple, le signe euro devient %E2%82%AC et les emojis sont encodés en séquences UTF-8 de 4 octets. Le décodage restaure parfaitement les caractères originaux.
Qu'est-ce que le mode d'encodage Formulaire et quand l'utiliser ?
Le mode Formulaire utilise le format application/x-www-form-urlencoded, le standard pour les soumissions de formulaires HTML et les corps de requêtes POST. La différence clé avec le mode Composant est que les espaces sont encodés en + (signe plus) au lieu de %20. Ce format est utilisé par les navigateurs lors de la soumission de formulaires HTML, par de nombreuses implémentations OAuth pour les requêtes de jetons, et dans certaines chaînes de requête d'API. Utilisez le mode Formulaire quand vous devez reproduire exactement ce qu'un navigateur envoie dans un POST de formulaire, ou quand une API requiert spécifiquement le format application/x-www-form-urlencoded. Pour un encodage URL général, le mode Composant est généralement le meilleur choix.