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.
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 debuts d'internet : la limitation ASCII. Lorsque Tim Berners-Lee a concu 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 debut des années 90, mais signifiait que tout caractère en dehors de cet ensemble sur necessitait un mecanisme de représentation. La solution etait d'une elegante simplicite : représenter chaque octet non sur par un signe de pourcentage suivi de sa valeur hexadecimale 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 necessiter trois octets en UTF-8, produisant trois triplets consecutifs. Le signe euro, par exemple, occupe trois octets (E2, 82, AC) et devient la sequence de six caractères %E2%82%AC. C'est pourquoi les URLs encodees contenant du texte non-latin peuvent paraitre considerablement 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 etabli 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 integration sure dans les composants d'URL. La spécification a égalementt introduit le principe de normalisation, définissant quand deux URLs differemment encodees doivent être considerees équivalentes.

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.

Méthodologie

L'encodage URL remplace les caractères ASCII non surs par un signe de pourcentage (%) suivi de deux chiffres hexadecimaux représentant la valeur en octets du caractère. Par exemple, un espace devient %20 (hex 20 = decimal 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 reserves ne necessitant jamais d'encodage : lettres majuscules et minuscules (A-Z, a-z), chiffres (0-9) et quatre caractères speciaux (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 reserve, le rendant idéal pour les valeurs de paramètrès de requête ou des caractères comme & et = doivent être echappes. Le mode URL Complete utilise encodeURI(), qui preserve 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 encodes (%E2%82%AC) car UTF-8 utilise un encodage de longueur variable d'un a 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 placee après un signe égal dans une chaine 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 Complete (encodeURI) lorsque vous avez une URL complété et souhaitez uniquement encoder les espaces et les caractères non-ASCII tout en gardant les delimiteurs structurels intacts. Si vous voyez %25 dans votre sortie, cela signifie que le signe de pourcentage lui-même a ete encode, ce qui indique généralement un double encodage—l'entrée etait déjà encodee avant votre traitement. Decoder ces chaines 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 decodage est utile pour rendre les URLs lisibles lors du debogage, analyser les journaux serveur ou inspecter les paramètrès de requête contenant des valeurs encodees. Les noms de domaine internationaux (IDN) utilisent un encodage différent appele Punycode plutot que l'encodage en pourcentage, donc les noms de domaine avec des caractères non-latins necessitent un traitement séparé. Encodez toujours les saisies utilisateur avant de les inserer dans les URLs pour prevenir les attaques par injection.

Exemples Pratiques

Paramètre de requête de recherche : encoder 'coffee & tea' en mode Composant produit 'coffee%20%26%20tea', echappant en sécurité les espaces et l'esperluette pour que le serveur recoive le texte litteral. Soumission de formulaire : un utilisateur entre 'price=50$', qui doit être encode en 'price%3D50%24' pour empecher 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 chaine de requête. Contenu multilingue : l'encodage de texte japonais produit des sequences d'octets UTF-8 sous forme de triplets en pourcentage. Decodage de debogage : collez une URL complété depuis les journaux serveur et decodez-la pour voir instantanement la requête originale pour un depannage rapide.

Conseils et Bonnes Pratiques

Utilisez toujours le mode Composant lors de l'encodage de valeurs individuelles de paramètrès de requête. Le mode URL Complete laisse les caractères structurels comme & et = non encodes, ce qui cassera votre URL si ces caractères apparaissent dans les données elles-memes plutot que comme delimiteurs. Evitez le double encodage en vérifiant si votre entrée est déjà encodee. Si vous voyez des sequences comme %20 ou %26 dans l'entrée, decodez d'abord avant de re-encoder pour eviter l'empilement (ou %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 chaine URL entière en une fois, car cela corromprait les caractères structurels separant le schéma, l'hote, le chemin et les composants de requête. Pour deboguer les appels API, collez l'URL encodee complété en mode decodage pour lire rapidement toutes les valeurs de paramètrès sous forme lisible. Cela est particulièrement utile pour resoudre les URLs de webhooks ou les redirections OAuth contenant des valeurs encodees imbriquees.

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

Cet outil vous a-t-il été utile ?
Souhaitez-vous nous en dire plus ?
0/500
Souhaitez-vous un suivi ?
Merci pour votre retour !

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.