Skip to content
Esc

URL decoder

Decode percent-encoded URLs and query strings.

For a query value or path segment. Leaves A–Z a–z 0–9 - _ . ! ~ * ' ( ) as they are.

Try

About this tool

Runs in
your browser
Your input sent to our servers
Nothing
Kept on this device
nothing

More in the privacy policy.

How to use it

  1. 01Paste a percent-encoded value, a query string or a whole URL, or pick one under Try.
  2. 02Choose how to decode: Component for a single value (RFC 3986 strict decodes the same way), Whole URL to leave the escapes that hold its structure (such as %2F and %26) as they are, Form when + means a space.
  3. 03Copy the result. If the text is a URL or a query string, its parts and parameters appear decoded below.

Related tools

Questions

Why are there still % signs after decoding?

The text was encoded twice, so each % became %25: %2520 decodes to %20, and decoding that again gives a space. Paste the result back in to remove another layer.

How do I read a long query string?

Paste the whole URL, or just the part after the ?. Each parameter appears below on its own line, decoded, in order, with repeated keys kept and + read as a space, as browsers read them.

Why does Whole URL leave some escapes alone?

Decoding %2F to / or %26 to & in a full address would change where it points or how its query splits. Whole URL keeps those as they are (a%2Fb%20c gives a%2Fb c); Component decodes everything.

What does an invalid escape mean?

Every % needs two hex digits after it, and the bytes must be valid UTF-8. caf%E9, é in the older Latin-1 encoding, gives “Invalid escape "%E9" at position 4: not valid UTF-8”.

Is my URL sent anywhere?

No. Decoding and reading a URL’s parts happen in this tab, and the URL is never opened or fetched. It isn’t sent to our servers or kept after you leave the page.