URL Encoder / Decoder

Percent-encode or decode URLs and query strings, entirely in your browser.

What URL encoding actually does

URLs may only contain a limited set of ASCII characters. Anything else — spaces, accented letters, &, ?, # — has to be percent-encoded: replaced by a % followed by the character's hexadecimal byte value. A space becomes %20, an ampersand becomes %26.

Component mode vs full URL

The two modes match JavaScript's two functions. Component mode (encodeURIComponent) escapes the reserved characters & ? / : = # too — use it when encoding a single value inside a query string. Full URL mode (encodeURI) leaves those intact because they have structural meaning — use it when encoding a whole URL.

Getting this wrong is a common bug: encoding a full URL in component mode turns https:// into https%3A%2F%2F and breaks the link.

Frequently asked questions

Why does a space sometimes become + instead of %20?

The + form comes from the older application/x-www-form-urlencoded format used by HTML form submissions. In the path or a modern query string, %20 is correct. Decoders for form data treat + as a space; generic URL decoders do not.

Is my data sent anywhere?

No. Encoding and decoding happen entirely in your browser using native JavaScript. Nothing you paste leaves your device.

Why do I get an error decoding?

A stray % that is not followed by two valid hex digits is malformed, and the decoder cannot interpret it. Check for a literal percent sign that should itself have been encoded as %25.