Comment utiliser : Encodage / décodage URL
- Choisissez un mode : Encoder un composant pour une valeur de requête ou un segment de chemin, Encoder l'URL complète pour une adresse entière, ou Décoder.
- Saisissez ou collez le texte dans la zone de gauche ; le résultat se met à jour au fur et à mesure que vous tapez.
- Utilisez Espaces en + pour un encodage de type formulaire HTML, ou Chaque ligne séparément pour traiter une liste.
- Collez une URL dans l'analyseur d'URL pour voir son hôte, son chemin et un tableau décodé de ses paramètres de requête.
Qu'est-ce que l'encodage d'URL ?
L'encodage d'URL, appelé officiellement encodage en pourcentage (RFC 3986), remplace les caractères non autorisés ou ayant une signification particulière dans une URL par un % suivi de deux chiffres hexadécimaux. Un espace devient %20, & devient %26, et les caractères non ASCII sont d'abord convertis en octets UTF-8 puis encodés octet par octet : é → %C3%A9, € → %E2%82%AC. Sans encodage, une valeur comme Tom & Jerry dans une chaîne de requête serait scindée en deux paramètres.
encodeURIComponent ou encodeURI ?
JavaScript propose deux fonctions, et choisir la mauvaise est une erreur classique :
| Caractère | encodeURIComponent | encodeURI |
|---|---|---|
| Espace | %20 | %20 |
/ ? # & = : @ + , ; $ | Encodé | Conservé tel quel |
A–Z a–z 0–9 - _ . ! ~ * ' ( ) | Conservé | Conservé |
é, emoji, autres non ASCII | Encodé en pourcentage (UTF-8) | Encodé en pourcentage (UTF-8) |
Utilisez encodeURIComponent (« Encoder un composant ») pour tout ce que vous insérez dans une URL : la valeur d'un paramètre de requête, un segment de chemin, une URL de redirection passée en paramètre. Utilisez encodeURI (« Encoder l'URL complète ») uniquement sur une URL complète qui ne contient que des espaces ou des caractères non ASCII, car il laisse intacts les caractères structurels : / ? # &.
%20 ou + ?
Dans le chemin d'une URL, un espace doit être écrit %20. Dans les chaînes de requête envoyées par les formulaires HTML (application/x-www-form-urlencoded), les espaces sont écrits +. La plupart des serveurs acceptent les deux dans la chaîne de requête, mais un signe plus littéral doit alors être envoyé sous la forme %2B. Le décodeur traite + comme un espace par défaut ; décochez l'option si vos données contiennent de vrais signes plus.
Erreurs de décodage
Un % doit être suivi de deux chiffres hexadécimaux exactement, et les caractères UTF-8 sur plusieurs octets nécessitent tous leurs octets. La fonction decodeURIComponent() classique lève URIError: malformed URI sequence dès la première séquence incorrecte ; cet outil décode tout ce qui est valide, laisse intactes les parties mal formées et vous indique lesquelles. Les chaînes encodées deux fois (%2520) deviennent %20 après une première passe : décodez à nouveau pour obtenir l'espace.
Anatomie d'une URL
https://user@shop.example.com:8443/search?q=shoes#results se compose du schéma (https:), des identifiants facultatifs, de l'hôte, du port, du chemin, de la chaîne de requête et du fragment. L'analyseur ci-dessus utilise l'API URL standard du navigateur (WHATWG URL Standard), la même que celle qu'utilise fetch(). Vous créez des liens de campagne ? Essayez le générateur UTM. Besoin d'encoder des données binaires ? Utilisez Base64.
Aussi recherché comme : encodage url, décodage url, encodage pourcentage, urlencode, urldecode, encodeuricomponent, décodeur url en ligne, analyseur d'url.
Outils complémentaires : Encodage / décodage URL
- Encodeur d'entités HTML — Échappez < > & " pour afficher du texte en sécurité dans une page HTML, convertissez les accents et symboles en entités nommées ou numériques, ou décodez un HTML rempli d'entités pour retrouver le texte brut.
- Générateur de slug — Convertissez n'importe quel titre en slug URL propre, en minuscules, avec une translittération correcte des accents, des umlauts et du cyrillique, une suppression facultative des mots vides et un mode en masse pour traiter des listes entières.
- Décodeur JWT — Collez un JSON Web Token pour examiner son en-tête et sa charge utile, vérifier sa date d'expiration et valider sa signature.
- Traducteur de code Morse — Saisissez du texte pour obtenir le code Morse, ou collez des points et des tirets pour les décoder — puis écoutez le résultat, observez les clignotements et téléchargez le fichier audio.
Questions fréquentes
Quand utiliser encodeURIComponent plutôt que encodeURI ?
/ ? & # =.Pourquoi un espace est-il parfois %20 et parfois + ?
%20 est l'encodage RFC 3986 valable partout dans une URL. + ne signifie espace que dans les chaînes de requête encodées par formulaire (application/x-www-form-urlencoded), ce qu'envoient les formulaires HTML.Que signifie « URIError: malformed URI sequence » ?
% non suivi de deux chiffres hexadécimaux, ou une séquence d'octets UTF-8 incomplète. Ce décodeur laisse ces parties inchangées et les liste, au lieu d'échouer.Quels caractères n'ont jamais besoin d'être encodés ?
A–Z a–z, les chiffres 0–9 et - _ . ~. Tous les autres sont soit réservés à la syntaxe d'URL, soit doivent être encodés en pourcentage.