How to use URL Decode
- Paste the encoded text from a link, a log line or a form post.
- Leave "+ means a space" ticked for query strings and forms; untick it for a path where a real plus sign matters.
- Read the decoded text on the right and Copy it, or Swap to re-encode after editing.
- For a whole address, switch to Parse a URL to see the host, path and each parameter decoded in a table.
Why use URL Decode
UTF-8 aware
Multi-byte sequences are decoded to the right letters; a sequence that is not valid UTF-8 is reported.
Query strings and forms
+ as a space, the way form posts and older links are written; off in one tap for paths.
Nothing lost
A % without two hex digits is left as it is and the position is named, so the rest of the line still decodes.
Parse a URL
Each parameter decoded on its own row, editable, with the URL rebuilt underneath.
About this tool
Encoded URLs turn up in logs, analytics exports, redirect parameters and email links, and reading %D9%85%D8%B3%D8%AC%D8%AF by eye is not an option. The decoder turns percent sequences back into text, treats + as a space where forms use it, and, unlike the browser's decodeURIComponent, does not throw on a malformed sequence: it decodes what it can and tells you where the problem is.
For a full address the parser is the better view: it uses the browser's URL parser to split the protocol, host, port, path and fragment, lists the query parameters decoded, and lets you edit them and copy the rebuilt URL. Everything runs on your device.
Frequently asked questions
Why does my decoded text show a plus sign where a space should be?
Query strings and form data write spaces as +. Tick "+ means a space" and it becomes a space; the tick is off when a plus sign is meant literally, as in a path or a phone number.
What does "not followed by two hex digits" mean?
A % must be followed by two hex characters. A bare % (as in 100%) was left as it is; if the text was meant to be encoded, the source did not encode that character.
Can it decode a double-encoded URL?
Decode once, then Swap and decode again: %2520 becomes %20 the first time and a space the second.
Does it handle nested URLs in a redirect parameter?
Yes. Use Parse a URL to see the outer parameters, then paste the inner URL into Decode.
Is the URL requested or stored?
No. Nothing is fetched and nothing leaves your browser.