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.
Maintained by Hirantha Sandaruwan Lakshan. Updated 31 July 2026.
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.
Sources & references
Updated Jul 31, 2026