Eazy Toolbox
Skip to tool

URL Decoder

Decode a percent-encoded URL back to readable text. If the result is a full URL, its query parameters are broken out so you can see what it carries.

Your data never leaves your browser. This tool runs entirely on your device.

Decoded
Paste an encoded URL to decode.

Why URLs need encoding

A URL can only contain a limited set of characters. Anything else — spaces, accented letters, emoji — has to be represented as a percent sign followed by the hexadecimal value of each UTF-8 byte, which is why a space becomes %20 and é becomes %C3%A9.

Characters that are legal but structural also need escaping when they appear inside a value rather than as separators. An ampersand inside a search term must become %26, or it will be read as the start of the next parameter.

space → %20    & → %26    é → %C3%A9

Encoding a component versus a whole URL

These are different jobs and using the wrong one is a frequent bug. Encoding a component escapes everything structural, including slashes and question marks, and is what you want for a single query value.

Encoding a whole URL leaves the structure intact and escapes only characters that are never valid, so https://example.com/a b becomes https://example.com/a%20b with the scheme and separators untouched.

Plus signs and spaces

In the application/x-www-form-urlencoded format used by HTML form submissions, a space is encoded as + rather than %20. In a path segment, + means a literal plus sign.

This decoder treats + as a space, because that is what most pasted strings mean. If your plus signs are literal, encode them as %2B before decoding.

Frequently asked questions

What is the difference between %20 and + for a space?

Both appear in the wild. %20 is correct percent-encoding and works anywhere in a URL. The + form comes from HTML form submission and is only valid in a query string, never in a path.

When should I use encodeURI instead of encodeURIComponent?

Use component encoding for a single value going into a query parameter or path segment, because it escapes / ? & and #. Use full-URL encoding when you have a complete URL and only want to fix illegal characters like spaces.

Why does my accented character become several % sequences?

Because percent-encoding works on bytes, not characters, and UTF-8 uses multiple bytes for anything outside ASCII. é is two bytes, so it becomes %C3%A9; an emoji is four bytes and becomes four sequences.

Is URL encoding the same as HTML escaping?

No. URL encoding uses percent sequences and applies to addresses. HTML escaping uses entities like & and applies to markup. Using one where the other is needed is a common source of bugs and of injection vulnerabilities.