URL Decode
Decode percent-encoded URL text back to plain text.
Related Tools
Percent-encode text for safe use in URLs.
Encode or decode Base64 for text and files, Unicode-safe.
Decode JWT header, payload, and signature with expiry and algorithm warnings.
Beautify and pretty-print JSON with configurable indentation.
Escape HTML entities to safely display raw markup as text.
Unescape HTML entities back to raw characters.
Documentation
What is URL Decode?
URL Decode reverses percent-encoding, turning %XX hex sequences back into their original characters — so %20 becomes a space and %26 becomes &. It's the tool you reach for when you've copied a query string out of a browser address bar or server log and want to read the actual values.
How it works
This tool calls the browser's native decodeURIComponent(), which converts each %XX sequence back to a byte and reassembles multi-byte UTF-8 sequences into the correct Unicode character. If the input contains a malformed sequence — a stray % not followed by two hex digits, or a broken multi-byte UTF-8 sequence — the call throws a URIError, which this tool catches and reports as "Invalid percent-encoding sequence" instead of returning corrupted text.
Features
- Matches JavaScript's decodeURIComponent exactly
- Correctly reassembles multi-byte UTF-8 percent sequences into Unicode text
- Reports malformed input instead of silently mangling it
- Works on a full URL, a query string, or a single value — all decode the same way
Example
Input: https%3A%2F%2Fdevformats.com%2Fsearch%3Fq%3Djson%20formatter
Output:
https://devformats.com/search?q=json formatter
Edge cases
A lone % in the input (one that isn't part of a valid two-digit hex escape, like a literal percent sign in "50% off") isn't valid percent-encoding and throws — text containing a real % character needs it encoded as %25 first. Decoding a value that was never actually encoded is harmless as long as it has no stray % characters — it passes through unchanged. Decoding a value twice when it was only encoded once will incorrectly turn literal %20 text into a space where none was intended.
Best practices
Decode once, at the point where you need the human-readable value — most HTTP libraries and web frameworks already decode query parameters for you automatically, so manual decoding is mainly for debugging raw request logs or one-off inspection. If decoding fails, check for a stray % before assuming the whole string is corrupt.
Spec
RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax
Frequently Asked Questions
What if the input isn't valid percent-encoding?▾
The tool reports "Invalid percent-encoding sequence" rather than silently producing garbled output.
Does this decode a full URL, or just a component?▾
It decodes any percent-encoded text — a full URL, a single query parameter value, or a path segment all work the same way.
Is my data uploaded anywhere?▾
No — decoding runs entirely in your browser.