Decode percent-encoded URLs. Fast, secure, and completely free. All processing happens in your browser — no data is sent to any server.
A URL Decoder reverses percent-encoding, converting sequences like %20 or %26 back into their original characters (a space, an ampersand) so you can read a URL or query string the way it was originally intended, rather than as the encoded form a browser or server would transmit. It's the necessary counterpart to a URL encoder: whenever you're inspecting a redirect URL, a tracking link, or a query parameter copied from a browser's address bar, decoding it first reveals what's actually being passed.
Query strings, redirect parameters, and tracking links are routinely percent-encoded, which makes them nearly unreadable at a glance — a redirect target buried in ?next=%2Fdashboard%3Ftab%3Dbilling is much easier to reason about once decoded. Decoding is also essential for debugging: when a query parameter isn't matching what you expect on the server side, seeing the actual decoded value (rather than the encoded one sitting in your browser's address bar) is often the fastest way to spot a mismatch or an unexpected double-encoding bug.
That usually means the original value was double-encoded — decode it a second time to fully resolve it back to plain text.
In application/x-www-form-urlencoded content (like form submissions), + traditionally represents a space; in a standard URL path or query component encoded with encodeURIComponent, a space is represented as %20 instead. Context determines which convention applies.
Decoding happens entirely in your browser with no server round-trip, so the content never leaves your machine — but always be cautious about where you paste sensitive tokens in general.
Yes, you can paste any fragment — a full URL, just the query string, or a single encoded value — and only the recognized percent-encoded sequences will be decoded.
Multi-byte UTF-8 sequences are represented as multiple %XX groups in a percent-encoded URL; decoding correctly reassembles them back into the original character, including emoji or non-Latin scripts.