URL Decode

Paste a percent-encoded URL string below and click Decode to convert it back to readable text. All processing happens locally in your browser.

Copied!

What is URL Decoding?

URL decoding (percent-decoding) converts percent-encoded characters back to their original form. For example, %20 becomes a space and %26 becomes &.

This tool also decodes + signs as spaces (common in form data).

Two settings decide what you get back. The character set says how the decoded bytes become text, which matters for anything older than UTF-8. The plus sign setting decides whether a plus means a space, which is true of form data and false of a path, so a base64 value carried in a URL is mangled if you get it wrong. When the result still holds percent escapes the page says so, because that almost always means the value was encoded twice.

Debugging something that will not decode?

A payload that will not decode is usually a symptom rather than the fault: a double encoding somewhere in the pipeline, a charset assumed instead of declared, a token signed over bytes that are not quite the bytes anyone expected. We do this kind of work, on integrations, APIs and the systems that pass data between them.

Tell us what is breaking

Frequently Asked Questions

What can this tool decode?
Any percent-encoded text: a query string value, a path segment, a redirect target, or a whole URL that was escaped before it was written to a log. Each %XX becomes the byte it names, and those bytes become text in the character set you choose.
Why did a plus sign turn into a space?
Because form data writes a space as a plus. That rule holds for x-www-form-urlencoded bodies and query strings and nowhere else, so switch it off when you decode a path or a base64 value where a plus is a real character.
What does the double encoding warning mean?
It means the result still contains percent escapes, which happens when a value was encoded and then encoded again by a second system. %2520 is the usual sign: it decodes to %20 rather than to a space. Decode a second time to reach the original.
Why do I get question marks or strange letters back?
The bytes were encoded in one character set and decoded in another. A UTF-8 letter read as Windows-1252 comes back as two accented characters. Change the character set until the text reads correctly.
Can I decode many values at once?
Yes. Paste them one per line and turn on the per line option, so each value is decoded on its own and the output keeps the same shape. A whole log line also works as it is, since only the percent escapes change.