U.UtilityApp
🔄 ConvertersFree · No signup

URL Decoder

Decode percent-encoded (%20, %2F …) URLs and query strings back into plain text.

Plus signs are turned into spaces first

Before decoding percent sequences, the decoder replaces every + with a space. That's right for query strings from HTML forms, where hello+world means "hello world".

It's wrong when the plus was meant literally and nobody encoded it, as in an unencoded Base64 value or phone number: a+b decodes to "a b". A properly encoded plus, %2B, comes through as +. If a decoded value has spaces where you expected plus signs, the sender didn't encode them, and you'll need to put them back by hand.

Double-encoded strings need a second pass

The decoder runs once. Text that was encoded twice keeps one layer of encoding:

  • %2520 decodes to %20
  • %252520 decodes to %2520

If your output still contains %XX sequences, paste it back into the input and decode again. Seeing %25 in a URL is the usual sign that something encoded it twice.

Inputs that fail with "Invalid URL-encoded input"

  • A bare percent sign. 100% fails, because % must be followed by two hex digits. An encoded percent, 100%25, decodes to 100%.
  • Bytes that aren't UTF-8. Some older systems encoded é as %E9 (Latin-1). That fails here, while the UTF-8 form %C3%A9 decodes to é.
  • Broken sequences such as %zz, or a multi-byte character cut in half when a URL was truncated.

A single bad sequence fails the whole input, not only that part. If a long URL won't decode, split it and decode the pieces to find the problem.

Decoding a whole query string can hide its structure

Every sequence is decoded, including %26 (&) and %3D (=). name=Tom%20%26%20Jerry&x=1 becomes name=Tom & Jerry&x=1, and you can no longer tell which & separates parameters. To see each parameter's real value, use the URL Query String Parser, or split on & and = before decoding each value here.

Frequently asked questions

Does it matter if the hex digits are lowercase?+

No. %e2%82%ac and %E2%82%AC both decode to the euro sign.

Why are some characters made of several %XX groups?+

Each group is one byte, and anything beyond plain English letters, digits and punctuation needs between two and four bytes in UTF-8. The emoji 🙂 is four groups: %F0%9F%99%82.

Can I decode a full URL, not only a parameter?+

Yes. Paste the whole address and everything encoded in it is decoded at once. That's useful for reading a link, but don't paste the result back into a browser if it now contains spaces or a decoded &.

Will it decode HTML entities like &?+

No. Entities such as & and < belong to HTML, not to URL encoding, and pass through unchanged. Use the HTML Entity Decoder for those.

Embed this tool on your website

Free to use on blogs, school sites and intranets. Paste this code into your page's HTML; please keep the credit line.

<iframe src="https://utilityapp.lat/embed/convert/url-decode" title="URL Decoder" width="100%" height="600" style="border:0;max-width:760px" loading="lazy"></iframe>
<p style="font-size:13px"><a href="https://utilityapp.lat/convert/url-decode">URL Decoder</a> by UtilityApp</p>