URL Decoder — Read a Percent-Encoded String
Turn %E4%B8%AD%E6%96%87 back into something you can read.
Runs on your device What you paste is processed by your own browser. It is never sent to a server, and it is not stored anywhere after you leave the page.
Short answer
A percent-encoded URL or query value can be decoded back to plain text for free in a web browser. Each %XX pair is read as a byte and the resulting sequence is decoded as UTF-8, so multi-byte characters reassemble correctly rather than appearing as three separate symbols. Plus signs are treated as spaces, matching how form-encoded values are written. The decoding happens locally, so a URL carrying session data or personal information is never transmitted.
At a glance
| Accepts | Percent-encoded text or URLs |
|---|---|
| Produces | Plain text (UTF-8) |
| Processing | In your browser |
| Price | Free, no limits |
| Account | Not required |
Encoded URLs are most often read when something has gone wrong: an analytics parameter that does not match, a redirect that lands in the wrong place, a log line whose query string is unreadable. Decoding it is usually the first step in seeing what was actually sent.
Watch for double encoding. If the result still contains %25 followed by two more characters, the string was encoded twice somewhere in its journey — decode it a second time to reach the original, and treat that as a bug worth fixing upstream.
How to use it
- 1
Paste the encoded text
A whole URL, a single query value, or anything containing %XX escapes.
- 2
Convert
The readable text appears below. An incomplete escape is reported rather than guessed at.
- 3
Decode again if needed
If the output still contains percent escapes, it was double-encoded. Run it through once more.
- 4
Copy the result
Copy to the clipboard, or download it as a text file.
Frequently asked questions
Why do I get an error on a lone % character?
Because a percent sign starts a two-digit escape. A % that is not followed by two hex digits is not valid percent-encoding, so the decoder stops instead of returning something that is partly right.
Is a plus sign decoded as a space?
Yes. In a form-encoded body a plus means a space, and that is by far the most common source of the strings people decode. A literal plus is written %2B by anything that encoded it properly.
My Chinese text came back as strange symbols. Why?
The bytes were probably encoded in a legacy character set such as GBK rather than UTF-8. This decoder reads UTF-8, which is what the URL standard requires; a string encoded another way cannot be recovered without knowing which.
Is the URL I paste sent anywhere?
No. URLs routinely carry session tokens, email addresses and search history, so the decoding runs entirely in your tab and nothing about it is transmitted or stored.