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.