URL Encoder / Decoder

Percent-encode or decode text for use in URLs — with separate modes for full URLs and individual components.

URL Encoder / Decoder

🔒 Nothing you enter is sent anywhere or stored. All processing happens in your browser.

How it works

URLs may only contain a limited set of characters, so anything else — spaces, ampersands, slashes inside a value, non-English letters — must be percent-encoded (a space becomes %20, for example). This tool encodes and decodes that format in both directions.

The Component mode uses encodeURIComponent, which escapes almost everything including /, ?, &, and =. Use it for a single piece of a URL, such as one query-string value, so those separator characters inside your value don't break the URL's structure.

The Full URL mode uses encodeURI, which leaves the structural characters intact and only escapes truly unsafe ones like spaces. Use it when you have a whole URL and just want to make it valid without dismantling it. Getting these two modes right is the key to building query strings that work — encoding a full URL as a component would escape the :// and break it. All conversion runs locally in your browser.

Examples

Component: hello world&morehello%20world%26more
Full URL: https://x.com/a bhttps://x.com/a%20b (structure kept)
Decode: %C3%A9é

Frequently asked questions

When should I use Component vs Full URL?
Use Component to encode a single value inside a URL (like a search term) so separators don't break it. Use Full URL to make an entire address valid without escaping its structural characters.
Why is a space sometimes %20 and sometimes +?
In paths and with encodeURIComponent, a space is %20. In some form-encoded query strings it appears as +. This tool uses the standard %20 form.
What causes a decode error?
A malformed percent sequence, such as a lone % not followed by two hex digits. Fix the input and try again.
Is my input stored?
No. Encoding and decoding happen entirely in your browser.