URL Encoder and Decoder
Percent-encode and decode URLs, choose between encoding a single value or a whole address, and read any query string as a plain table.
encodeURIComponent — escapes / ? : @ & = + $ #. Use for a single query value.
Base
https://example.com/search
| Parameter | Value |
|---|---|
| q | hello world |
| lang | en |
| tag | c |
What the URL Encoder and Decoder does
- Percent-encodes and decodes text in both directions as you type.
- Offers both encoding scopes: one for a single value, one for a whole address.
- Breaks a query string into a table of already-decoded parameters.
- Reports invalid percent-escapes rather than failing silently.
What it doesn't do
- It doesn't shorten URLs or follow redirects.
- It doesn't validate whether a URL actually resolves.
- It doesn't decode Base64 embedded inside a URL — use the Base64 tool for that.
Frequently asked questions
What's the difference between the two encoding scopes?
Encoding a component escapes the characters that carry structural meaning — slash, question mark, ampersand, equals and colon — which is what you want for a single query value. Encoding a whole URL leaves those intact so the address still works. Using the wrong one is the usual reason an encoded link breaks.
Why does a space become %20 sometimes and + at other times?
Percent-encoding uses %20 everywhere. The plus sign is a convention specific to HTML form submissions in query strings. This tool decodes + as a space when breaking down a query string, and emits %20 when encoding, which is safe in both contexts.
Why do I get "invalid percent-escape"?
A % must be followed by exactly two hexadecimal digits. A literal percent sign that was never encoded — as in "50% off" — will trigger this. Encode it as %25 first.