URL Encoder & Decoder
Encode and decode URLs and query parameters in your browser. Handles full URLs and individual components. Always private.
Component mode escapes every reserved character (':', '/', '?', '&', '=' …). Use it for query-string values, path segments, or form fields.
Use this free URL encoder and decoder to convert reserved characters to percent-encoded escapes (and back) instantly. Pick Component mode for a single query value, or Whole URL mode for a complete URL — paste an encoded URL in Decode mode and every query parameter is extracted automatically.
How to use it
No account, no upload — it all happens on your device.
Reserved vs unreserved characters
The two-line rule that explains the whole encoding.
URLs are ASCII-only, and a handful of characters have a special meaning inside the URL syntax (/ separates path segments, ? starts the query string, & separates query parameters, and so on). To put one of those characters inside a value without breaking the structure, you replace it with %XX where XX is its hex byte value.
The unreserved characters never need encoding: letters A-Z a-z, digits 0-9, and the four marks - _ . ~. Everything else is either reserved (escape it in component mode) or unsafe (escape it always).
Common escape sequences
The handful you'll see in real URLs.
| Character | Encoded as | Why |
|---|---|---|
| space | %20 (or +) | Forms use +, URI paths use %20. |
| ! | %21 | Reserved sub-delim. |
| # | %23 | Starts the fragment — must escape in values. |
| $ | %24 | Reserved sub-delim. |
| & | %26 | Separates query params — must escape in values. |
| + | %2B | Form-encoded space — must escape if literal. |
| / | %2F | Path separator — escape in path segments. |
| : | %3A | Reserved sub-delim. |
| ? | %3F | Starts the query string. |
| @ | %40 | Reserved for userinfo. |
| é | %C3%A9 | UTF-8 byte pair. |
| 🎉 | %F0%9F%8E%89 | UTF-8 four-byte sequence. |
Picking the right mode
- Component mode matches
encodeURIComponent()in JavaScript. Use it for each query-string value, each path segment, or anything going into a URL as a single piece. Aggressive — escapes reserved characters too. - Whole URL mode matches
encodeURI(). It leaves URL structure intact —https://, slashes, question marks — and only escapes truly unsafe characters within each part. Use it when you have a full URL with spaces or accented characters that you want to keep navigable.
When in doubt, use component mode and join the pieces yourself. It's the only mode that guarantees the input is treated as opaque data.