Skip to content

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

Options
0 chars · 0 lines
The result will appear here.

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?

  1. Paste the encoded text or URL into the input box.
  2. Turn on "Treat + as space" for query strings that come from HTML forms; leave it off for paths and most other data.
  3. 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:

Input
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dcaf%C3%A9%20%26%20bar
Output
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.

More tools in Encoding & Decoding →