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.

  • PrivateYour data never leaves this device
  • No uploadsProcessed in your browser, not on a server
  • 100% freeNo signup, no watermark, no trial
  • UnlimitedUse it as often as you like, no daily caps

How we protect your privacy →

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.