How to use the URL decoder
- Paste the encoded link or value into Encoded URL or value.
- Keep Treat + as a space (query strings) ticked for query strings and form data, or untick it for URL paths.
- Tick Decode twice (for %25-encoded values) if the result still shows % codes.
- Copy the Decoded text.
What it does and when to use it
Encoded links are hard to read. A tracking link, a login redirect or a URL copied from a browser’s address bar can be a wall of % codes. Decoding shows you what it really says, which helps when you:
- Check where a redirect or “continue” link will actually send you.
- Read the search terms, campaign tags or filters in a query string.
- Debug an API request whose parameters look wrong.
- Read form data captured in server logs.
- Find out whether a value was encoded twice by mistake.
To encode a value, use the URL Encoder. If the string is made of letters, digits, - and _ with no % signs, it may be Base64URL instead, so try the Base64 Decoder. For a token in a URL, the JWT Debugger can read it.
How it works
The decoder scans the text for % followed by two hex digits and turns each one back into a byte. Runs of bytes are then read as UTF-8, so multi-byte characters such as é or emoji come back whole. If + as a space is on, each + becomes a space first. A % that is not followed by two hex digits is kept as a literal % sign.
With Decode twice, the result is decoded a second time, without turning + into spaces again. If you did not tick it but the result still contains % codes, the tool shows a hint. Everything runs in your browser, so links with private details stay on your device.
Worked examples
A query value. “caf%C3%A9+au+lait” decodes to café au lait. The two codes %C3%A9 form é, and each + becomes a space.
Spotting double encoding. “100%2520off” decodes once to “100%20off”, and the tool adds the hint that it was probably encoded twice.
Decoding twice. “100%25%2520off” with Decode twice ticked gives 100% off. The first pass gives “100%%20off” and the second turns %20 into a space.
A stray percent sign. “50%+off” decodes to 50% off. The % is kept because it is not followed by two hex digits, and the + becomes a space.
Limits and tips
- Decoding can turn data back into structure. After decoding, an & or = inside a value looks the same as one that separates parameters, so decode values one at a time when you need precision.
- Text is read as UTF-8. Very old links encoded in another character set may not decode cleanly.
- Decoding a link does not visit it. It is a safe way to check a suspicious link before you click.
Frequently asked questions
What does %20 mean in a URL?
Why does my decoded text still contain % codes?
Should + be turned into a space?
What happens with a % sign that is not followed by two hex digits?
Does it decode non-English characters?
How do we know nothing is uploaded? Test it yourself on the privacy proof page.