URL Decoder
Turn %20, %3A and %C3%A9 back into readable text, and find out exactly where a malformed sequence sits.
Processed locally in your browser· Your data stays in your browser.
What is URL Decoder?
Percent-encoding writes bytes as "%" plus two hex digits so they can travel inside a URL. Decoding collects those bytes and reads them as UTF-8, which is how "%C3%A9" becomes "é" and "%F0%9F%98%80" becomes 😀. It equals JavaScript’s decodeURIComponent, but without throwing an exception on bad input.
This decoder pinpoints malformed sequences such as "100%" or "%zz" with their position and a hint, or leaves them untouched if you switch on the lenient option. It can treat "+" as a space for form data, reads invalid UTF-8 with a warning and can fall back to ISO-8859-1 for old Latin-1 URLs. The decoded text is only displayed: no link is ever opened or requested.
How does it work?
- Paste the encoded text or URL into the input box.
- Turn on "Treat + as space" for query strings that come from HTML forms; leave it off for paths and most other data.
- Enable "Leave malformed sequences" if the text contains a literal "%" you want to keep, or choose ISO-8859-1 for legacy encodings, then copy the result.
Common use cases
- Reading a long redirect or tracking URL from an email or log without clicking it.
- Checking what a query parameter really contains during API debugging.
- Decoding file names in links such as caf%C3%A9.pdf.
- Spotting double-encoded values (%2520) that show a bug in your code.
Examples
Try this input in the tool above:
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dcaf%C3%A9%20%26%20bar
https://example.com/search?q=café & bar
Privacy
URL Decoder runs entirely in your browser. The text or files you provide are processed on your device and are not uploaded, logged or stored on our servers.
Limitations
Decoding is text only and does not verify that a URL is safe. Beware of links you did not create, and never paste decoded secrets into untrusted pages.
Frequently asked questions
Why do I get a malformed percent-encoding error?
A "%" must be followed by two hex digits (0–9, A–F). Values like "100%" or "%zz" break that rule. Enable "Leave malformed sequences" to keep them as they are.
Should "+" become a space?
Only in HTML form data (application/x-www-form-urlencoded). In URL paths and most other places a plus is a real plus sign, so the option is off by default and a note appears when your input contains one.
What does %2520 mean?
It is a double-encoded space: %25 is "%", so %2520 decodes once to "%20". Run the decoder a second time to get the space.
Related tools
URL Encoder
Make any text safe for a URL: spaces, accents, ampersands and emoji become %XX sequences.
Encoding & Decoding
HTML Entities Decoder
Turn <, é, € and 😀 back into the characters they stand for.
Encoding & Decoding
Base64 Decoder
Paste a Base64 string and read the original text instantly, even when the padding is missing.
Encoding & Decoding
URL Parser
Paste a URL and see every component separately, with the query parameters decoded in a table.
Developer Tools
Query String Parser
Turn ?a=1&b=2 into a readable table and a JSON object, with percent-encoding and + signs decoded.
Developer Tools
Remove URL Parameters
Clean links before you share or store them: remove tracking tags, or every query parameter, in bulk.
Developer Tools
Unicode Unescape Converter
Paste text full of \u00e9, U+1F600 or ☺ and read the real characters.
Encoding & Decoding