URL Encoder / Decoder
Understand URL Encoder / Decoder
L'encodage pourcent réécrit les caractères qui portent une signification structurelle dans une URL, afin qu'ils soient transmis comme de simples données.
How it works
Chaque caractère hors de l'ensemble non réservé (A–Z, a–z, 0–9 et - _ . ~) est remplacé par un % suivi des deux chiffres hexadécimaux de chacun des octets UTF-8 qu'il occupe, si bien qu'une espace devient %20 et é devient %C3%A9. Les deux modes correspondent aux deux fonctions JavaScript, et la différence tient à ce qu'elles laissent intact : encodeURI préserve les caractères qui construisent une URL — : / ? # [ ] @ & = + $ , — tandis qu'encodeURIComponent les encode également. Utilisez encodeURI sur une URL entière et encodeURIComponent sur une valeur isolée que vous vous apprêtez à y insérer.
When to use it
- Placer dans une chaîne de requête un terme de recherche, une adresse e-mail ou un nom de fichier fournis par l'utilisateur.
- Construire une URL de redirection qui transporte une autre URL complète comme valeur de paramètre.
- Relire une URL encodée en pourcent tirée d'un journal serveur ou d'un rappel OAuth pour voir ce qui a réellement été envoyé.
- Encoder un segment de chemin qui contient des espaces ou des caractères non ASCII.
Watch out for
- encodeURI est le mauvais choix pour une valeur isolée : il laisse & = ? # intacts, si bien qu'une valeur contenant & se scinde silencieusement en deux paramètres de requête. Cette seule différence explique la plupart des liens cassés.
- Les corps de formulaire et beaucoup d'anciennes chaînes de requête encodent l'espace par + plutôt que par %20. Le décodage ne le reconvertit pas ici — decodeURIComponent laisse un signe plus littéral.
- Encoder deux fois est un bug courant, et il se voit : %20 devient %2520. Tout %25 dans une URL signifie que quelque chose a été encodé une fois de trop.
- encodeURIComponent laisse ! ' ( ) * non échappés alors que la RFC 3986 les réserve, si bien que quelques serveurs stricts continueront de le contredire.
Not the right tool for: Rendre une valeur sûre à afficher dans une page. Un paramètre d'URL décodé doit encore être échappé en HTML avant d'atteindre le DOM.
Frequently Asked Questions
À quoi sert l'encodage d'URL ?
L'encodage d'URL (encodage pourcent) remplace les caractères spéciaux d'une URL par un % suivi de leur code ASCII en hexadécimal. Une espace devient %20, & devient %26. Les URL restent ainsi valides et analysables par tous les navigateurs et tous les serveurs.
Quand faut-il encoder une chaîne pour une URL ?
Encodez les valeurs avant de les ajouter à une chaîne de requête, au corps d'un POST de formulaire ou à n'importe quel composant d'URL. Encodez toujours les données fournies par l'utilisateur : des caractères comme &, =, #, ? et + ont une signification réservée dans les URL.
Quelle est la différence entre encodeURI et encodeURIComponent ?
encodeURI encode une URL complète en préservant les caractères de structure (: / ? # [ ] @ etc.). encodeURIComponent encode une valeur isolée et encode aussi ces caractères de structure — c'est celui à utiliser pour les valeurs de paramètres de requête.
How to Use URL Encoder / Decoder
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.