Encodeur et Décodeur URL avec Analyseur de Structure Intégré
Collez une URL pour la décoder ou l'encoder instantanément. Analyseur intégré décomposant protocole, hôte, chemin et paramètres en champs éditables. Modes encodeURI et encodeURIComponent. 100 % navigateur — aucune donnée envoyée.
Qu'est-ce que l'encodage URL (encodage en pourcentage) ?
L'encodage URL, formellement appelé encodage en pourcentage, est un mécanisme défini dans la RFC 3986 pour représenter les caractères dans un Identifiant Uniforme de Ressource (URI) qui ne sont pas autorisés ou qui ont une signification spéciale. Il convertit chaque octet non sûr en un signe pourcentage (%) suivi de deux chiffres hexadécimaux — par exemple, un espace devient %20, une esperluette devient %26 et le caractère chinois 中 devient %E4%B8%AD (ses trois octets UTF-8, chacun encodé en pourcentage).
Les URLs ne peuvent contenir qu'un ensemble limité de caractères du jeu ASCII. Les lettres, chiffres et quelques symboles (- _ . ~) sont considérés comme « non réservés » et peuvent apparaître tels quels. Tous les autres caractères — y compris les espaces, la ponctuation et l'ensemble de l'Unicode — doivent être encodés en pourcentage pour être transmis en toute sécurité dans une URL. Les caractères réservés comme ?, &, = et # servent de délimiteurs structurels dans la syntaxe URL, ils doivent donc aussi être encodés lorsqu'ils sont utilisés comme données littérales plutôt que comme délimiteurs.
L'encodage en pourcentage est essentiel sur tout le web : les navigateurs encodent les soumissions de formulaires, les APIs requièrent des paramètres de requête encodés, les flux OAuth dépendent d'URIs de redirection correctement encodés, et les noms de domaine internationalisés reposent sur l'encodage des caractères non-ASCII. Une erreur d'encodage entraîne des liens cassés, des vulnérabilités de sécurité (comme les attaques de redirection ouverte) et la corruption de données.
Cet outil propose les modes encodeURI et encodeURIComponent, un analyseur de structure URL intégré, une conversion en temps réel et la détection du double encodage — le tout fonctionnant en privé dans votre navigateur.
L'encodage URL est souvent utilisé aux côtés d'autres outils de développement web. Vous pourriez avoir besoin d'encoder une URL en Base64 pour l'intégrer dans un jeton JWT ou un payload API, ou de formater des données JSON contenant des chaînes URL pour inspecter leur structure.
// Encode a query parameter value
const param = encodeURIComponent('hello world & goodbye');
console.log(param); // → 'hello%20world%20%26%20goodbye'
// Encode a full URL (preserves structure)
const url = encodeURI('https://example.com/path name?q=hello world');
console.log(url); // → 'https://example.com/path%20name?q=hello%20world'
// Decode a percent-encoded string
const decoded = decodeURIComponent('hello%20world%20%26%20goodbye');
console.log(decoded); // → 'hello world & goodbye'
// Build a URL with encoded parameters
const base = 'https://api.example.com/search';
const query = `?q=${encodeURIComponent('你好')}&lang=zh`;
console.log(base + query); // → 'https://api.example.com/search?q=%E4%BD%A0%E5%A5%BD&lang=zh' Fonctionnalités clés
Double mode d'encodage
Basculez entre encodeURI (préserve la structure URL) et encodeURIComponent (encode tout pour les valeurs de paramètres) selon votre cas d'utilisation exact.
Analyseur d'URL intégré
Décompose automatiquement toute URL en protocole, hôte, port, chemin, paramètres de requête et fragment — chaque champ est éditable et peut être reconstruit en une nouvelle URL.
Conversion en temps réel
Encodez et décodez instantanément pendant la saisie — aucun bouton à cliquer, les résultats apparaissent immédiatement dans l'autre zone à chaque frappe.
100 % dans le navigateur
Tout le traitement se fait localement dans votre navigateur avec les APIs JavaScript natives. Vos données ne quittent jamais votre appareil — aucun envoi serveur, aucun suivi.
Support UTF-8 complet
Gère correctement le chinois, le japonais, le coréen, l'arabe, les émojis et tout texte Unicode grâce à un encodage et décodage UTF-8 approprié.
Détection du double encodage
Détecte et signale automatiquement les problèmes de double encodage comme %2520 (un %20 encodé en pourcentage), vous aidant à éviter l'une des erreurs d'encodage URL les plus courantes.
Exemples
Décoder une URL illisible
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%26lang%3Den
https://example.com/search?q=hello world&lang=en
Une URL entièrement encodée en pourcentage est décodée sous forme lisible, révélant les paramètres et la structure d'origine
Caractères chinois
https://example.com/search?q=你好世界
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C
Les caractères chinois sont convertis en séquences d'octets UTF-8 puis encodés en pourcentage
Paramètres de requête
https://example.com/api?name=John Doe&role=admin&lang=en&sort=date desc
https://example.com/api?name=John%20Doe&role=admin&lang=en&sort=date%20desc
Les espaces et caractères spéciaux dans les valeurs des paramètres de requête sont encodés en pourcentage tout en préservant la structure de l'URL
URL complète
https://user:pass@example.com:8080/path/to/page?key=value&arr[]=1#section-2
https://user:pass@example.com:8080/path/to/page?key=value&arr%5B%5D=1#section-2
Une URL complète avec identifiants, port, chemin, paramètres de requête avec crochets et identifiant de fragment
URI de redirection OAuth
https://auth.example.com/authorize?redirect_uri=https://myapp.com/callback?code=abc&state=xyz
https://auth.example.com/authorize?redirect_uri=https%3A%2F%2Fmyapp.com%2Fcallback%3Fcode%3Dabc%26state%3Dxyz
La valeur redirect_uri contient elle-même une URL complète qui doit être encodée pour que ses caractères spéciaux ne soient pas interprétés comme faisant partie de l'URL externe
Comment utiliser
- 1
Saisissez une URL ou une chaîne encodée
Collez une URL dans la zone décodée pour l'encoder, ou collez une chaîne encodée en pourcentage dans la zone encodée pour la décoder. Sélectionnez le mode encodeURI ou encodeURIComponent selon votre cas d'utilisation.
- 2
Consultez les résultats et la structure analysée
L'autre zone se met à jour instantanément pendant que vous tapez. L'analyseur d'URL décompose l'URL en protocole, hôte, port, chemin, paramètres de requête et fragment — tous éditables.
- 3
Copiez ou reconstruisez
Cliquez sur Copier pour copier le résultat encodé ou décodé. Modifiez les composants individuels de l'URL et cliquez sur Reconstruire pour construire une nouvelle URL à partir des parties modifiées.
Erreurs courantes
Double encodage (%2520 au lieu de %20)
Le double encodage se produit quand une URL déjà encodée est encodée à nouveau. Le % dans %20 est encodé en %25, transformant %20 en %2520. Cela casse l'URL car le serveur voit une chaîne littérale %20 au lieu d'un espace.
https://example.com/path%2520with%2520spaces
https://example.com/path%20with%20spaces
Espace encodé comme + dans les segments de chemin
Le caractère + ne représente un espace que dans le format application/x-www-form-urlencoded (chaînes de requête de formulaires HTML). Dans les segments de chemin URL, + est interprété comme un signe plus littéral, pas un espace. Utilisez toujours %20 pour les espaces dans les segments de chemin.
https://example.com/my+file+name.pdf
https://example.com/my%20file%20name.pdf
Utilisation d'encodeURI sur les valeurs de paramètres de requête
encodeURI() n'encode pas &, = ni les autres caractères réservés, donc l'utiliser sur une valeur de paramètre contenant ces caractères corrompt la structure de la chaîne de requête.
encodeURI('key=value&more') → 'key=value&more' (& not encoded!) encodeURIComponent('key=value&more') → 'key%3Dvalue%26more' Supposition d'encodage non-UTF-8
Certains systèmes legacy utilisent des encodages comme Latin-1 ou Shift-JIS pour les paramètres URL. Les standards modernes exigent UTF-8. Décoder un paramètre encodé en Shift-JIS avec un décodeur UTF-8 produit du texte corrompu.
Decoding %82%B1%82%F1 as UTF-8 (this is Shift-JIS for こん)
Using UTF-8: %E3%81%93%E3%82%93 correctly decodes to こん
Encodage de chemins relatifs sans contexte
Encoder un chemin relatif comme ../images/photo.jpg avec encodeURIComponent transforme les barres obliques et les points en séquences encodées en pourcentage, cassant la structure du chemin. Utilisez encodeURI() ou n'encodez que les segments de chemin individuels.
encodeURIComponent('../images/photo.jpg') → '..%2Fimages%2Fphoto.jpg' Encode each segment: '../images/' + encodeURIComponent('my photo.jpg') Cas d'utilisation courants
- Débogage d'URLs illisibles
- Décodez les URLs encodées en pourcentage provenant des journaux serveur, des messages d'erreur ou des outils de développement du navigateur pour lire le texte original lisible.
- Développement d'APIs
- Encodez les valeurs de paramètres de requête pour les appels API REST, en vous assurant que les caractères spéciaux comme &, = et les espaces ne cassent pas l'URL de requête.
- Configuration de flux OAuth
- Encodez correctement redirect_uri et les autres paramètres URL dans les URLs d'autorisation OAuth pour prévenir les échecs d'authentification.
- URLs internationalisées
- Encodez et décodez les URLs contenant des caractères chinois, japonais, coréens, arabes ou autres caractères non-ASCII pour les applications web internationalisées.
- Analyse de liens marketing
- Décodez les URLs de suivi des campagnes email et des plateformes publicitaires pour comprendre les paramètres UTM intégrés et les chaînes de redirection.
- Inspection de structure URL
- Analysez des URLs complexes en leurs composants — protocole, hôte, port, chemin, paramètres de requête et fragment — pour l'analyse et la modification.
Détails techniques
- Caractères réservés et non réservés RFC 3986
- La RFC 3986 définit les caractères non réservés (A-Z, a-z, 0-9, -, ., _, ~) qui n'ont jamais besoin d'encodage, et les caractères réservés (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) qui servent de délimiteurs URI et doivent être encodés en pourcentage lorsqu'ils sont utilisés comme données.
- Flux d'encodage des octets UTF-8
- Les caractères non-ASCII sont d'abord convertis en leur point de code Unicode, puis encodés en octets UTF-8 (1 à 4 octets selon la plage du point de code), et enfin chaque octet est encodé en pourcentage comme %XX. Par exemple : é (U+00E9) → octets UTF-8 C3 A9 → %C3%A9. L'émoji 🎉 (U+1F389) → octets UTF-8 F0 9F 8E 89 → %F0%9F%8E%89.
- Terminologie URL vs URI
- Un URI (Identifiant Uniforme de Ressource) est le terme général pour toute chaîne d'identification. Une URL (Localisateur Uniforme de Ressource) est un URI qui spécifie aussi le mécanisme d'accès (comme https://). Les règles d'encodage de la RFC 3986 s'appliquent à tous les URIs. L'API JavaScript utilise la terminologie URI (encodeURI, decodeURI), tandis que l'usage courant préfère URL.
Bonnes pratiques
- Utilisez le bon mode pour chaque tâche
- Utilisez encodeURIComponent() pour les clés et valeurs de paramètres de requête individuels. N'utilisez encodeURI() que lorsque vous avez une URL complète et voulez encoder les caractères non sûrs sans casser sa structure. N'utilisez jamais encodeURI() sur des valeurs de paramètres pouvant contenir &, = ou d'autres caractères réservés.
- Évitez le double encodage
- Avant d'encoder une chaîne, vérifiez si elle est déjà encodée. Recherchez les séquences % existantes. Encoder une chaîne déjà encodée transforme %20 en %2520, %3D en %253D, etc. En cas de doute, décodez d'abord, puis encodez une fois.
- Décodez côté serveur
- La plupart des frameworks web décodent automatiquement les paramètres URL avant que votre code applicatif ne les voie. Évitez de décoder manuellement des paramètres que votre framework a déjà décodés — cela peut causer des problèmes si la valeur originale contenait des séquences de pourcentage littérales.
- Encodez les valeurs pour OAuth et la signature API
- Les chaînes de base de signature OAuth 1.0 et de nombreux algorithmes de signature API nécessitent un encodage en pourcentage strict RFC 3986. Utilisez encodeURIComponent() puis remplacez les caractères restants qu'il n'encode pas (comme !, ', (, ), *) par leurs équivalents encodés en pourcentage si la spécification l'exige.
Questions fréquentes
Qu'est-ce que l'encodage URL et pourquoi est-il nécessaire ?
Quelle est la différence entre encodeURI et encodeURIComponent ?
L'encodage URL est-il identique à l'encodage HTML ?
Pourquoi mon URL casse-t-elle dans une commande curl ?
Pourquoi les caractères chinois deviennent-ils des chaînes comme %E4%B8%AD dans les URLs ?
Faut-il encoder le paramètre redirect_uri dans OAuth ?
Quelle est la différence entre querystring et URLSearchParams dans Node.js ?
Comment encoder une URL en Python, JavaScript et Java ?
Quels caractères ne sont pas encodés par l'encodage URL ?
Quelle est la différence entre + et %20 pour l'encodage des espaces ?
Comment l'encodage URL gère-t-il les émojis ?
L'encodage URL peut-il être utilisé pour le chiffrement ou la sécurité ?
Quelle est la longueur maximale d'une URL ?
Quelle est la différence entre une URL et un URI ?
Outils connexes
Voir tous les outils →Décodeur et Encodeur Base64
Encodage et formatage
Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé — dans votre navigateur. Sans inscription.
Formateur et Validateur JSON
Encodage et formatage
Formatez, validez et embellissez vos JSON dans le navigateur. Outil gratuit avec validation syntaxique, detection d'erreurs, minification et copie. 100 % prive.
Convertisseur de Base — Binaire, Hex, Décimal & Octal
Outils de conversion
Convertissez des nombres entre binaire, hexadécimal, décimal, octal et toute base personnalisée (2-36) instantanément. Gratuit, privé, sans inscription — tout se passe dans votre navigateur.
Compressez vos Images JPEG, PNG & WebP en Ligne
Outils de conversion
Compressez vos images JPEG, PNG & WebP gratuitement dans le navigateur — aucun envoi serveur. Lots de 20 images, qualité réglable, comparaison avant/après. 100% privé, sans inscription.
Convertisseur de Longueur — Mètres, Pieds, Pouces
Outils de conversion
1 pouce = 2,54 cm, 1 pied = 0,3048 m, 1 mile = 1,609 km. Convertissez entre 16 unités de longueur instantanément — métriques, impériales et astronomiques. Gratuit et privé.
Générateur de Hash MD5 en Ligne et Vérificateur de Checksum
Outils de sécurité
Générez des hashes MD5, SHA-256, SHA-1 et SHA-512 gratuitement — 100% dans votre navigateur, sans inscription. Hachez texte ou fichiers, vérifiez les checksums et comparez les hashes en un clic. Vos données restent privées.