URL Decoder

Turn unreadable links full of %20, %3A and %2F back into plain text. See every query parameter decoded, and get a clear warning when an escape is broken.

Runs in your browser — nothing is uploaded Free, no limits

Encoded URL or text

Result

Output appears here.

How to use the URL Decoder

  1. Paste the encoded URL, query string or text.
  2. Keep "Treat + as space" on for form data and query strings; turn it off if + should stay a literal plus.
  3. Read the decoded result — any malformed % sequences are listed with their position.
  4. If the result still has % escapes, click "Decode again" for double-encoded links.
  5. Check the URL parser to see the host, path and each query parameter.

Frequently asked questions

How do I decode a URL?

Paste it into the box. Each %XX sequence is turned back into the byte it represents and the bytes are read as UTF-8, so %20 becomes a space and %C3%A9 becomes "é".

Why does decoding fail with "URI malformed"?

JavaScript's decodeURIComponent throws if any % isn't followed by two hex digits (like "100%" or "%zz") or if the bytes aren't valid UTF-8. This tool doesn't stop: it decodes everything it can and tells you exactly which sequence is broken.

Should + be decoded as a space?

Only in form-encoded data (application/x-www-form-urlencoded), which includes HTML form submissions and most query strings. In a URL path, + is a literal plus sign, so switch the option off there.

What is double encoding?

It happens when already-encoded text is encoded again, so %20 becomes %2520. The decoded result will still contain % escapes; decode it a second time to get the original.

Is it safe to decode URLs here?

Yes. Decoding happens in your browser and the URL is never opened, fetched or uploaded.