URL Encoder / Decoder
Percent-encode text for a URL, or decode a URL back into readable text.
Runs entirely in your browser
Loading tool...
How to use
- Choose whether you are encoding or decoding.
- Pick what you have: a single value going inside a query string, or a whole URL.
- Paste your text — the result updates as you type.
- Turn on + for spaces if the value is going into a form submission.
Features
- Both modes, kept distinct: a value that must escape / ? and &, or a whole URL that must not.
- Decoding points at the character that failed instead of returning nothing.
- Optional + for spaces, matching how a form submits.
- Correct on non-ASCII: Vietnamese, Japanese and emoji encode as UTF-8 bytes.
- Runs entirely in your browser.
Frequently asked questions
- What is the difference between the two modes?
- A value going inside a query string must escape /, ?, & and = — otherwise it breaks out and changes the URL's meaning. A whole URL must not escape those, because they are its structure. Picking the wrong one is the usual bug: encoding a full URL as a value gives you https%3A%2F%2F..., which nothing can follow.
- Why did my decode fail?
- A % that is not followed by two hex digits. Usually a literal percent sign that was never encoded — "100%" is the classic case. The tool tells you which character it stopped at.
- Should spaces be %20 or +?
- %20 everywhere in a URL; + only inside a query string of a submitted form, where it is a convention from HTML forms rather than the URL standard. When in doubt, %20 is always safe.
- Is my text uploaded?
- No. Encoding and decoding both happen in the page, using the browser's own functions. Nothing is sent to a server.
Related tools
Paste a curl command from your browser's network panel and get the fetch call it corresponds to.
Escape text so a browser renders it instead of running it — and read entities back into the characters they stand for.
Break a URL into its scheme, host, path, query parameters and fragment.
Convert text to Base64 and back again.