URL
Percent-encode or decode URL components instantly. Convert special characters to %XX format or back. Free, client-side, no data sent to any server.
A free online URL encoder and decoder that percent-encodes text for safe use in URLs and decodes percent-encoded strings back to their original form, all in your browser. When a value contains spaces, ampersands, slashes, or non-ASCII characters, it must be percent-encoded before it can travel safely in a query string or path — this tool does that conversion and reverses it. Use it to encode a parameter value, to read a percent-encoded URL by decoding it, or to safely nest a redirect URL inside another URL. Nothing is uploaded; encoding and decoding happen locally.
Common uses
- Encode a query-string value that contains spaces, ampersands, or slashes.
- Decode a percent-encoded URL to read the original parameters.
- Prepare a redirect URL to be safely nested inside another URL parameter.
- Encode non-ASCII text so it can be used in a link or API request.
- Debug why a URL parameter is being misread by decoding it to see its true value.
Frequently asked questions
What characters get percent-encoded?
Reserved and unsafe characters such as spaces, &, =, ?, /, and non-ASCII characters are converted to their %XX byte representation.
Does it handle malformed encoding?
Yes. If the input contains malformed percent-encoding sequences, the decoder reports an error rather than producing garbled output.
What is the difference between encoding a component and a full URL?
A single value (like one query parameter) needs every reserved character encoded, whereas a whole URL must keep its structural characters (://, /, ?, &) intact. Encode individual values before assembling them into a URL.
Why do spaces sometimes become %20 and sometimes +?
Percent-encoding uses %20 for a space. The + form is specific to application/x-www-form-urlencoded form data, not general URL paths.
Is my input sent to a server?
No. Encoding and decoding run entirely in your browser, so your text stays on your device.
All processing is local — your data never leaves your browser.