URL decoder

Turn a percent-encoded URL back into plain text.

Runs in your browser. Nothing you type is sent anywhere.

How to URL decode text

  1. Paste the encoded text.
  2. Turn on treat + as space if it came from a web form.
  3. Copy the decoded result.

Example: encoded in, decoded out

EncodedDecoded
Hello%20WorldHello World
a%2Bba+b
caf%C3%A9cafe (with an accent)
a+b, with plus as space ona b

Why decoding can fail

  • A % that is not followed by two valid hex digits, often a literal % that was never meant to be encoded, such as a discount code like SAVE10%.
  • Text copied from two different sources, where part is already decoded and part is still percent-encoded.
  • Encoded bytes that do not form valid UTF-8, which happens if the text was encoded with a different character set.

Where an encoded URL comes from

  • A browser address bar, which encodes special characters in whatever you typed or pasted.
  • Server logs and query strings shared in a bug report or support ticket.
  • Webhook and redirect links, which are worth decoding and reading before you trust them.
  • A tracking or analytics link, where decoding shows the exact parameters and values a click will send.

URL decode FAQ

Why do I get a decode error?

It means the text has a percent sign that is not followed by two valid hex digits, so it is not properly percent-encoded.

Should I always turn on plus as space?

Only when the text came from a form or query string, where a literal + character means a space. A path or a base64 value can genuinely contain a +.

Is this the same as un-escaping a URL?

Yes, this reverses standard percent-encoding used in URLs, query strings and form data.

Does this follow the same standard as the URL encoder?

Yes. It reverses RFC 3986 percent-encoding using JavaScript's built-in decodeURIComponent.

What if my text has a literal percent sign that was never encoded?

It causes a decode error unless the % is followed by two valid hex digits. Encode a literal percent sign as %25 before decoding the rest of the text.

Can it decode a full URL with a query string?

Yes, paste the whole address. Everything that was percent-encoded, including values inside the query string, is decoded at once.

Which JavaScript function does this wrap?

decodeURIComponent, with an extra option to treat a + character as a space, which decodeURIComponent alone does not do, since + is only a space convention in form-encoded data.

Does decoding change plain letters and digits?

No. They were never encoded in the first place, so they pass through unchanged.

Related tools