URL Encode & Decode - Free, Local

Percent-encode text so it's safe to use inside a URL, or decode an already-encoded URL back to readable text, entirely in your browser.

How it works

Certain characters, like spaces, ampersands, and question marks, have special meaning inside a URL and need to be percent-encoded when they appear inside a value, such as a query parameter.

Encoding uses encodeURIComponent, which escapes everything except letters, digits, and a small set of characters safe in any part of a URL - the right choice for encoding a single value rather than a whole URL.

Decoding reverses the process, converting %XX sequences back to their original characters.

Worked examples

Building a query parameter with spaces or symbols

Encode a search term or value containing spaces or special characters before appending it to a URL as a query parameter.

Reading a URL copied from a browser address bar

Decode a URL full of %20 and %2F sequences back into readable text to see what it actually contains.

Debugging a broken link

Decode a suspicious-looking URL to check whether a parameter was double-encoded or contains unexpected characters.

Frequently asked questions

Is my text uploaded anywhere?

No, encoding and decoding both run entirely in your browser tab.

Should I encode an entire URL or just a value?

Just the value going into a query parameter or path segment - encoding an entire URL would also escape characters like : and / that need to stay literal.

What happens if I decode text that isn't percent-encoded?

Plain text with no % sequences passes through unchanged, since there's nothing to decode.

Why does decoding sometimes fail?

A malformed percent sequence, like a stray % not followed by two hex digits, isn't valid encoding and is reported as an error rather than guessed at.

What is the difference between encoding a whole URL and a single value?

Encoding a whole URL leaves structural characters like : / ? & intact. Encoding a single value escapes them too, which is what you want for something going inside a query parameter.

Why do spaces become %20 sometimes and + other times?

%20 is correct percent-encoding anywhere in a URL. The + convention applies only to HTML form submissions. When in doubt, %20 is the safer choice.

Do I need to encode non-English characters?

Yes. Characters outside the basic ASCII set have to be percent-encoded to travel safely in a URL, which is why an accented word turns into several % sequences.

Is there a length limit for URLs?

The spec sets none, but browsers and servers impose their own, commonly around 2000 characters. Anything approaching that should be sent in a request body instead.

Updated Jul 31, 2026