URL Encoder / Decoder
Percent-encode text for URLs, or turn %20-soup back into something readable — instantly, locally.
About this tool
URLs can only carry a small set of safe characters, so everything else travels as percent-encoding: a space becomes %20, an ampersand %26, and accented or non-Latin characters become their UTF-8 bytes in hex. This tool converts in both directions — paste readable text and get a URL-safe string, or paste an encoded mess and get it back in plain language.
Two modes cover the two real jobs: component mode encodes every reserved character and is what you want for a single query-string value; full-URL mode leaves : / ? & = untouched so a complete address keeps working. There's also an option to decode legacy + signs as spaces, as HTML forms produce them.
Frequently asked questions
What is URL encoding?
URLs can only contain a limited set of characters, so everything else — spaces, accents, symbols like & or ? — is written as a percent sign followed by the character's byte value in hex. A space becomes %20, an ampersand becomes %26, and é becomes %C3%A9.
What's the difference between component and full-URL mode?
Component mode (encodeURIComponent) encodes every reserved character, including / ? & = — use it for values you're putting into a query string. Full-URL mode (encodeURI) leaves the URL's structure characters intact — use it to clean up a complete address without breaking it.
Why does my decoded text show + instead of spaces?
HTML forms historically encode spaces as + in query strings. Turn on the "decode + as space" option and the tool converts them for you.
Is what I paste sent to a server?
No — encoding and decoding run as local JavaScript in your tab. URLs often contain tokens and personal data, so this stays on your machine.
Why do I get a decoding error?
A stray % that isn't followed by two hex digits makes a string invalid percent-encoding. The tool flags this instead of guessing — check for truncated or double-encoded input.