Skip to content

URL Decoder

Decode URL-encoded text online by converting percent-encoded characters back to readable text. Free URL decoder for web developers.

About URL Decoding

URL decoding converts percent-encoded characters back to their original form. This is useful when you need to read or modify URL parameters that contain encoded characters.

Example:

Input: Hello%20World%21
Output: Hello World!

How to Use URL Decoder

1

Paste URL-encoded text

Paste a percent-encoded URL or query parameter value into the input field. The tool accepts both %20 (standard) and '+' (form-urlencoded) for spaces.

2

View decoded output

Decoding happens instantly. Special characters and Unicode are restored to their original form. Multiple decodes might be needed for nested encoding.

3

Detect encoding errors

Invalid percent sequences (e.g., %ZZ) cause errors with location info. Common issues: lone % characters not followed by hex digits, malformed UTF-8 byte sequences.

4

Copy the result

Click Copy to use the decoded text elsewhere. Useful for inspecting query parameters, parsing referrer URLs, or debugging API requests.

When to Use URL Decoder

Inspecting server logs and analytics URLs

Server access logs, analytics platforms, and security tools record URLs in their encoded form. To analyze user search queries, referrer paths, or campaign UTM parameters, decode the URLs first. Reveals what users actually typed, which campaigns drove traffic, and what content they engaged with.

Debugging API requests

When an API call returns unexpected results, look at the request URL or query string in DevTools or proxy tools (Charles, Wireshark). The URL is often percent-encoded; decoding makes it readable to spot bugs like double-encoded values, missing parameters, or wrong escape sequences.

Processing OAuth callback URLs

OAuth and OpenID Connect callbacks pass authorization codes, state parameters, and error messages as URL-encoded values. Decode to extract the values for processing — especially state parameters that may contain JSON or nested data that's been URL-encoded.

Parsing referrer URLs

When tracking where traffic comes from, the Referrer header contains the previous page's URL — often URL-encoded. Decoding reveals the actual referring page (including query parameters), which helps with attribution, fraud detection, and understanding user journeys.

URL Decoder Examples

Decoding a query parameter

Input
q=Hello%2C%20World%21
Output
q=Hello, World!

%2C decodes to ',', %20 to ' ', %21 to '!'. The output reveals the user's actual search query 'Hello, World!' — useful for analyzing what users searched for in your application.

Decoding Unicode

Input
%E4%B8%AD%E6%96%87
Output
中文

Three bytes per character (UTF-8 for these CJK characters) are percent-encoded individually. Decoding reverses this: %E4%B8%AD → bytes 0xE4 0xB8 0xAD → UTF-8 → '中', similarly for '文'. The decoder handles UTF-8 byte sequences automatically.

Decoding form-urlencoded (uses + for space)

Input
name=John+Doe&role=admin%20user
Output
name=John Doe&role=admin user

Both '+' and %20 represent spaces — '+' is the form-urlencoded convention (used by HTML form submissions), %20 is the URL-encoding convention (used in URL paths). A proper decoder handles both, restoring spaces in either format. The output is now ready for parsing as 'name=John Doe' and 'role=admin user'.

Tips & Best Practices for URL Decoder

  • 1.Use decodeURIComponent for parameter values; use decodeURI for whole URLs where you want to preserve structure characters. They differ in handling reserved characters: decodeURIComponent decodes everything, decodeURI preserves ':', '/', '?', '#'.
  • 2.Watch for double-encoded URLs. If you see %25 followed by other characters, that's a literal '%' that was itself encoded. To fully decode, run the decoder twice — but be careful, decoding too many times can corrupt legitimate %XX sequences in your data.
  • 3.When decoding fails with 'malformed URI sequence', check for lone '%' characters not followed by two hex digits (often from broken truncation), %00 null bytes (which some decoders reject), or invalid UTF-8 byte sequences (incomplete multi-byte chars).
  • 4.Form data uses '+' for space, URL paths use %20 — both decode to the same thing. If you're parsing form-encoded data, replace '+' with ' ' before percent-decoding (or use a form-urlencoded parser like URLSearchParams).
  • 5.For analyzing decoded URLs at scale (thousands of log lines), use command-line tools: `python -c "import urllib.parse; print(urllib.parse.unquote(line))"` or perl's URI::Escape. They're faster than copying line-by-line into a web tool.
  • 6.Decoding is sometimes unnecessary in practice — most server frameworks (Express, Django, Spring) decode query parameters automatically before exposing them to your code. Use this tool when you have a raw encoded URL string outside of a framework context.

Frequently Asked Questions

URL decoding is the reverse of URL encoding — it converts percent-encoded characters (like %20 for space, %26 for &) back to their original characters. Whenever you receive a URL or URL-encoded string, decoding restores readable text for display, processing, or storage.