URL Decoder

URL Decoder turns percent-encoded text — the %XX sequences you see in links and query strings — back into the original readable characters. Paste an encoded URL and instantly see what it really says.

It is the reverse of URL encoding and is invaluable for reading logs, debugging redirects and inspecting tracking parameters. Decoding happens locally in your browser, so sensitive URLs stay on your device.

decodeURIComponent — turns every %XX escape back into its character. The counterpart to encoding a single query value or path segment.

Encoded text
Decoded
Decoded text appears here.

How to use URL Decoder

  1. 1

    Pick a decoding mode

    Component for a single value, Full URL for a complete address, or Form to also turn + back into spaces.

  2. 2

    Paste the encoded text

    Drop the %XX-encoded string into the input box and the decoded text appears instantly.

  3. 3

    Copy the readable result

    Copy the decoded text to inspect, reuse or share it.

How URL decoding works

Percent-encoding represents a byte as a % followed by two hexadecimal digits. Decoding reverses this: %20 becomes a space, %2F becomes a slash, and multi-byte UTF-8 sequences are reassembled into the correct Unicode characters. The result is the human-readable text that was encoded in the first place.

Reading an encoded URL by eye is error-prone, especially when values themselves contain encoded reserved characters. Decoding makes the real content obvious at a glance.

Common reasons to decode a URL

Server and access logs store request URLs in their encoded form, so decoding is often the first step when debugging what a client actually requested. The same applies to OAuth redirects, where the redirect target is itself an encoded URL nested inside another.

Marketers and analysts decode query strings to read UTM tags and other tracking parameters. Developers decode them to confirm that a value was encoded correctly before it was sent.

Frequently asked questions

What does the + to space option do?
In HTML form submissions a space is encoded as +. The Form mode converts + back into a space in addition to decoding %XX escapes. In Component and Full URL modes a literal + is left as-is.
Why do I get a malformed input error?
Decoding fails when the text contains an invalid escape — for example a lone % or an incomplete %X. Fix or remove the stray sequence and try again.
Is decoding done on a server?
No. All decoding runs in your browser, so the URLs you paste never leave your device.

Last updated: