URL Encoder & Decoder

Encode and decode URLs and query parameters in your browser. Handles full URLs and individual components. Always private.

Runs in your browser — nothing uploaded

Component mode escapes every reserved character (':', '/', '?', '&', '=' …). Use it for query-string values, path segments, or form fields.

Plain text or URL
Encoded output
Encoded URL appears here
Type a value above to URL-encode it.

Use this free URL encoder and decoder to convert reserved characters to percent-encoded escapes (and back) instantly. Pick Component mode for a single query value, or Whole URL mode for a complete URL — paste an encoded URL in Decode mode and every query parameter is extracted automatically.

Private by design — your data never leaves your device

How to use it

No account, no upload — it all happens on your device.

1
Pick Encode or Decode at the top.
2
Choose Component for a single value (default) or Whole URL for a full URL you want to keep navigable.
3
Paste your input on the left — output appears instantly on the right.
4
If you paste a URL with a query string in Decode mode, each parameter is broken out into a table below.

Reserved vs unreserved characters

The two-line rule that explains the whole encoding.

URLs are ASCII-only, and a handful of characters have a special meaning inside the URL syntax (/ separates path segments, ? starts the query string, & separates query parameters, and so on). To put one of those characters inside a value without breaking the structure, you replace it with %XX where XX is its hex byte value.

The unreserved characters never need encoding: letters A-Z a-z, digits 0-9, and the four marks - _ . ~. Everything else is either reserved (escape it in component mode) or unsafe (escape it always).

Common escape sequences

The handful you'll see in real URLs.

CharacterEncoded asWhy
space%20 (or +)Forms use +, URI paths use %20.
!%21Reserved sub-delim.
#%23Starts the fragment — must escape in values.
$%24Reserved sub-delim.
&%26Separates query params — must escape in values.
+%2BForm-encoded space — must escape if literal.
/%2FPath separator — escape in path segments.
:%3AReserved sub-delim.
?%3FStarts the query string.
@%40Reserved for userinfo.
é%C3%A9UTF-8 byte pair.
🎉%F0%9F%8E%89UTF-8 four-byte sequence.

Picking the right mode

  • Component mode matches encodeURIComponent() in JavaScript. Use it for each query-string value, each path segment, or anything going into a URL as a single piece. Aggressive — escapes reserved characters too.
  • Whole URL mode matches encodeURI(). It leaves URL structure intact — https://, slashes, question marks — and only escapes truly unsafe characters within each part. Use it when you have a full URL with spaces or accented characters that you want to keep navigable.

When in doubt, use component mode and join the pieces yourself. It's the only mode that guarantees the input is treated as opaque data.

Frequently asked

When should I use Component vs Whole URL mode?
Use Component mode for a single value going into a query string, path segment, or form field — it escapes every reserved character. Use Whole URL mode when the input is a full URL you want to remain a valid URL — only the unsafe characters inside each component get escaped.
What characters get encoded?
Component encoding escapes everything except letters, digits, and the unreserved marks - _ . ! ~ * ' ( ). Whole-URL encoding leaves reserved URL syntax characters (':', '/', '?', '&', '=', '#') intact so the URL still parses.
Why are my plus signs turning into spaces (or vice versa)?
HTML form submissions use 'application/x-www-form-urlencoded', which encodes spaces as '+'. Standard URI encoding uses '%20' for spaces and leaves '+' as a literal plus. This tool follows the standard URI rules — paste form data carefully or replace '+' with '%20' first if you want spaces back.

Related tools

JSON Formatter & BeautifierFormat, beautify, and validate JSON instantly in your browser. Your data never leaves your device.JWT Decoder & VerifierDecode and verify JSON Web Tokens (JWT) in your browser. HS256, RS256, ES256 supported. Tokens and keys never leave your device.Base64 Encoder & DecoderEncode text to Base64 or decode Base64 back to text instantly in your browser. Unicode-safe. Nothing is uploaded.