URL Encoder / Decoder
Encode text into percent-encoded form for safe use in a URL, or decode a percent-encoded URL back into readable text — with two modes depending on what you're encoding.
How to use
Use Component mode (`encodeURIComponent`) when encoding a value that will go inside a query parameter or path segment — it escapes everything including `&`, `?`, `#` and `/`, since those characters would otherwise break the URL structure if left in a parameter value.
Use Full URI mode (`encodeURI`) when encoding an entire URL that should stay a working link — it leaves structural characters like `:`, `/`, `?`, `#` and `&` untouched, and only escapes spaces and other characters that aren't valid in a URL at all.
FAQ
What's the difference between the two encoding modes?
Component mode escapes every character that isn't a letter, digit or a small set of safe symbols — appropriate for a single value being inserted into a URL. Full URI mode assumes you're encoding an entire URL and preserves the characters that give it structure (`:/?#[]@&=+$,;`), only escaping what's actually invalid in a URL.
Why does my URL break if I use the wrong mode?
If you encode a whole URL with Component mode, the `://` and `?` that make it a valid link get escaped too, turning it into a broken string instead of a working address. Use Component mode only on the individual value going inside a parameter, not the whole URL.
What does %20 mean?
It's the percent-encoded form of a space character — URLs can't contain literal spaces, so encoders replace them with their percent-encoded byte value. `+` is sometimes used instead of `%20` specifically inside query strings, a historical convention from HTML form submission.
Is my URL sent anywhere when I use this tool?
No — encoding and decoding happen entirely in JavaScript in your browser. This is safe even for URLs containing sensitive tokens or parameters, since nothing is transmitted or logged.