Encode or decode URLs with encodeURIComponent or encodeURI. 100% local.
This tool runs 100% in your browser. All computation happens locally on your device — your input is never uploaded to any server. Results are for reference only.
A URL is allowed to contain only a small safe alphabet (A–Z a–z 0–9 - _ . ~ plus a few reserved symbols). Anything else — spaces, &, /, ?, #, non-ASCII letters, emoji — would be misread as part of the URL structure. Encoding replaces them with % + two hex digits of their UTF-8 bytes; decoding reverses exactly that. encodeURIComponent escapes the widest set (good for a query value); encodeURI keeps structural punctuation like ? and # (good for a whole URL).
A space is byte 0x20 → %20. The Chinese character 你 (U+4F60) is three UTF-8 bytes E4 BD A0 → %E4%BD%A0. Decoding walks the %XX triplets and reassembles the bytes.
You want to pass 'hello world' and a Chinese keyword in one URL query string.
Encode and decode URLs with encodeURIComponent and encodeURI modes. Everything runs locally; nothing is uploaded.
FreeToolHub URL Encoder / Decoder is a free browser-based tool — encode and decode URLs with encodeURIComponent and encodeURI modes. No signup, no upload; everything runs locally in your browser.
Encodez et décodez des URL avec les modes encodeURIComponent et encodeURI. Support Unicode complet. 100 % basé sur le navigateur, gratuit, sans inscription.
Cet outil convertit du texte au format d'URL encodé en pourcentage et inversement, résolvant le problème selon lequel les URL ne peuvent contenir qu'un ensemble ASCII limité. Les espaces, les esperluettes, les dièses, les caractères CJK et les emoji ont tous des significations réservées ou illégales dans les URL et doivent être encodés sous forme de séquences %XX. Deux modes couvrent les deux cas réels : le mode encodeURIComponent encode tout, y compris & = ? /, pour une utilisation comme valeur de paramètre unique, et le mode encodeURI préserve les caractères de structure d'URL afin qu'une URL complète reste fonctionnelle. Le support Unicode complet signifie que les textes chinois, arabes et emoji s'encodent correctement en leurs séquences de pourcentages UTF-8.
Les développeurs web construisent des chaînes de requêtes où l'entrée utilisateur contient des espaces ou des symboles qui casseraient autrement les limites des paramètres. Les marketeurs construisent des liens avec balises UTM contenant des noms de campagne avec des caractères non-ASCII et vérifient comment ils survivent dans les systèmes de messagerie. Les testeurs d'API encodent des valeurs de filtre dans des URL de requête et décodent des valeurs extraites des journaux serveur pour voir ce qui a réellement été envoyé. Les utilisateurs internationaux collant des termes de recherche CJK dans des outils qui s'attendent à une entrée encodée l'utilisent constamment. Les équipes de débogage décodent les URL encodées des rapports d'analyse pour lire la destination originale.
(1) Collez votre texte ou URL. (2) Choisissez le mode : mode component (encodeURIComponent) pour une valeur de paramètre, mode full-URI (encodeURI) pour une URL complète où les barres obliques et les séparateurs de requête doivent être conservés. (3) Lisez la sortie encodée — les espaces deviennent %20 (ou + dans les contextes d'encodage de formulaire), le non-ASCII devient des séquences UTF-8 multi-octets, les caractères réservés deviennent leurs formes en pourcentage. (4) Le mode Decode inverse n'importe quelle chaîne encodée en pourcentage, gérant les séquences UTF-8 mélangées et la convention de forme + comme espace. Tout se convertit en direct et localement.
Les deux fonctions JavaScript correspondent aux deux philosophies d'encodage, et choisir la mauvaise casse les URL de différentes manières. encodeURIComponent est pour les valeurs individuelles : il échappe tout ce qui a une signification structurelle — & = ? / # — afin qu'une valeur comme a&b=c ne puisse pas injecter de faux paramètres. Utilisez-le chaque fois que l'entrée utilisateur devient un paramètre de requête. encodeURI est pour les URL déjà assemblées : il préserve les séparateurs qui font fonctionner l'URL tout en encodant les espaces et le non-ASCII. Utilisez-le pour désinfecter un lien complet pour l'affichage ou la transmission. Le bug classique est d'utiliser encodeURI sur une valeur de paramètre, laissant & et = intacts afin que les serveurs en aval divisent la valeur en paramètres fantômes ; le bug inverse transforme une URL complète en quelque chose d'inutilisable. Cet outil expose explicitement les deux modes afin que vous choisissiez toujours le bon.
Chaque fois que du texte arbitraire voyage à l'intérieur d'une URL. Les caractères réservés ont des rôles dans la grammaire d'une URL — ? démarre une requête, & sépare les paramètres, # saute à un fragment — donc une valeur contenant ces caractères doit être encodée en pourcentage (par exemple, & devient %26) ou elle sera mal interprétée comme une structure. Encodez chaque valeur de paramètre de requête que vous construisez manuellement.
L'étendue. encodeURIComponent échappe tout ce qui a un sens spécial, donc il est adapté pour une valeur de paramètre individuelle (un nom de ville, un terme de recherche). encodeURI préserve les caractères de structure d'URL (?, /, &, =) afin qu'une URL entière reste analysable — l'utiliser sur une valeur de paramètre laisse & et = non échappés et corrompt la chaîne de requête. Cet outil expose les deux modes afin que vous puissiez correspondre à la fonction JavaScript que votre code utilise.
Deux normes : la spécification de formulaire HTML encode les espaces comme +, tandis que l'encodage en pourcentage RFC 3986 utilise %20. Les navigateurs soumettent des formulaires avec +, mais les chaînes de requête que vous construisez vous-même devraient utiliser %20 — et un décodeur strict ne transformera pas + en espace. Si vos espaces se décodent mal, vous avez mélangé les deux conventions.
Non, et les confondre cause des bugs réels. L'encodage d'URL (encodage en pourcentage) rend le texte sûr pour voyager à l'intérieur d'une URL ; l'échappement HTML (< & ...) rend le texte sûr pour s'afficher à l'intérieur d'un document HTML. Une valeur qui va dans un paramètre de requête a besoin d'un encodage d'URL en premier — l'échapper en HTML enverrait des littéraux "amp;" au serveur.
Les caractères encodés en URL sont décodés par le serveur avant traitement, donc l'encodage ne change pas la page de destination. Cependant, un encodage excessif dans les URL visibles peut être perçu comme du spam par les moteurs de recherche. Meilleure pratique : n'encodez que les caractères spéciaux dans les paramètres de requête, pas dans la structure de chemin. Utilisez des traits d'union pour la séparation des mots dans les chemins d'URL.
encodeURIComponent encodes all special characters including : / ? # [ ] @, making it suitable for encoding individual query parameter values. encodeURI preserves URL structural characters, making it suitable for encoding an entire URL. This tool supports both modes—use encodeURIComponent for parameter values, encodeURI for full URLs.
URL-encoded characters are decoded by the server before processing, so encoding does not change the destination page. However, excessive encoding in visible URLs can look spammy to search engines. Best practice: encode only special characters in query parameters, not in the path structure. Use hyphens for word separation in URL paths.
What do you call a really smart cookie?
No signups, no data sold. Every tool is free to use — the free tier allows 5 downloads or saves per day, and the optional Pro plan ($7/mo, $59/yr) adds unlimited downloads, batch processing, white-label exports and an ad-free experience.
☕Support me on Ko-fi— support the free tier100% of proceeds go towards hosting & building more free tools.