jsondecode.com logo

URL Decoder

Decode percent-encoded URL strings back to readable text. Runs entirely in your browser.

Input
Decoded Text Output

What is URL Decoding?

URL decoding (percent-decoding) reverses percent-encoding: it replaces every %XX sequence with the corresponding UTF-8 character. For example, Hello%20World%21 becomes Hello World!, and caf%C3%A9 becomes café. URL decoding is essential when reading URLs from server logs, debug output, API payloads, or browser address bars where the original text was encoded by a form or script.

Where you encounter percent-encoded URLs

  • Server access logs — web servers log raw request URIs. Search queries, file paths, and referrer headers appear percent-encoded.
  • Browser address bar — modern browsers display Unicode URLs in readable form, but copy the raw percent-encoded version to the clipboard.
  • OAuth and SSO redirect URIs — the redirect_uri parameter is often a fully URL-encoded URL inside another URL.
  • API query strings — REST API clients encode filter values; decoding reveals the original field names and operators.
  • HTML form submissions — browsers encode form data as application/x-www-form-urlencoded before sending.

Troubleshooting decode errors

Decoding throws a URIError when the input contains a malformed percent sequence — a % not followed by exactly two valid hex digits. Common causes: truncated strings where the last few characters are cut off, a literal percent sign in text that was not intended to be encoded (50% off → should be 50%25 off), or mixing encoded and unencoded content.

Frequently asked questions

How do I decode a full URL vs just the query string?

For a full URL, decode only the query parameter values — not the structural characters like /, ?, and &. Paste the complete URL here and read the human-friendly version; if the structural characters disappear, decode only the individual parameter values instead.

Why does %2B decode to + but the URL shows a space?

%2B is the percent-encoding of a literal plus sign. A + in a query string represents a space only in HTML form encoding (application/x-www-form-urlencoded). If you are decoding form data, replace + with a space before decoding.

If jsondecode.com saved you time, share it with your team

Free forever. No ads. No sign-up. Help other developers find it.