Comment encoder et décoder des URL : un guide complet
Réponse rapide
L'encodage URL convertit les caractères non sécurisés en séquences %XX où XX est la valeur hexadécimale de l'octet. Les espaces deviennent %20 (ou + dans les données de formulaire), les caractères chinois deviennent des séquences %XX multi-octets. Utilisez notre encodeur URL et notre décodeur URL gratuits : tout le traitement s'effectue localement dans votre navigateur.
Introduction
L'encodage URL, également connu sous le nom d'encodage en pourcentage, est un mécanisme d'encodage des caractères réservés et dangereux dans un URL afin que le URL puisse être transmis en toute sécurité sur Internet. URLs ne peut contenir qu'un ensemble limité de caractères ASCII ; tout autre caractère (espaces, lettres non ASCII, symboles) doit être codé en pourcentage sous la forme d'une séquence commençant par % suivi de deux chiffres hexadécimaux représentant la valeur de l'octet.
Pas à pas
-
Identifier ce qui doit être encodé
Les caractères qui ne font pas partie du jeu non réservé (A-Z, a-z, 0-9, -, ., _, ~) doivent être codés en pourcentage. Cela inclut les espaces, les séparateurs de requêtes tels que = et &, les barres obliques et tous les caractères non ASCII tels que le chinois, l'arabe ou les emoji.
-
Encodez le URL ou la chaîne de requête
Collez votre texte dans l'outil Encodeur URL. Il utilise encodeURIComponent() pour coder chaque caractère réservé. Le résultat apparaît instantanément dans le champ de sortie.
-
Copiez le résultat codé
Cliquez sur le bouton Copier pour copier la chaîne codée en pourcentage. Vous pouvez désormais l'intégrer en toute sécurité dans un paramètre de requête URL, une requête API ou une soumission de formulaire.
-
Décoder un URL codé
Collez un URL codé ou une chaîne de requête dans l'outil de décodage URL. Il utilise decodeURIComponent() pour restaurer les caractères d'origine. Vérifiez que la sortie décodée correspond à vos attentes.
-
Vérifier les cas extrêmes
Vérifiez que les espaces sont décodés correctement (%20 vs +), que les séquences UTF-8 multi-octets décodent au bon caractère et que les chaînes déjà codées ne sont pas codées deux fois.
Exemples
Encoder du texte avec un espace
Saisir: Hello World
Sortir: Hello%20World
Encoder un séparateur de chemin
Saisir: a/b
Sortir: a%2Fb
Encoder les caractères chinois (UTF-8)
Saisir: 你好
Sortir: %E4%BD%A0%E5%A5%BD
Décoder un paramètre de requête codé
Saisir: key%3Dvalue%26foo%3Dbar
Sortir: key=value&foo=bar
Problèmes courants
- Double-encodage : l'encodage d'une chaîne déjà encodée transforme %20 en %2520. Vérifiez toujours si l’entrée est déjà codée avant de ré-encoder.
- Confondre encodeURI avec encodeURIComponent : encodeURI conserve les caractères réservés comme /, ? et intacts pendant URLs complet, tandis qu'encodeURIComponent encode tout pour les valeurs des paramètres de requête.
- Gestion de l'espace : %20 est la forme codée en pourcentage ; + n'est valide que dans les données corporelles application/x-www-form-urlencoded, pas dans le chemin URL ou la chaîne de requête selon la RFC 3986.
- Encodages hérités non UTF-8 : les navigateurs modernes codent en UTF-8, mais les systèmes existants peuvent utiliser GBK ou Latin-1, provoquant un mojibake lorsqu'ils sont décodés de l'autre côté.
Conseils
- Utilisez encodeURIComponent() pour les valeurs de paramètres de requête individuelles et encodeURI() pour l'intégralité de URLs déjà bien formées.
- Lors de la création de chaînes de requête, encodez la valeur mais pas les séparateurs = ou & : encodez chaque valeur séparément, puis joignez-la avec &.
- Utilisez nos outils URL Encoder et Decoder pour déboguer les appels API qui renvoient 400 erreurs en raison de chaînes de requête mal formées.
- Décodez toujours côté serveur en utilisant le même codage de caractères (UTF-8) pour éviter le mojibake.