URL Encoder & Decoder

Encode and decode URLs and URL components in your browser. Supports component-level and full URL modes.

Runs entirely in your browser. Nothing is sent to our servers.

Use "Component" for query parameter values, path segments, or any single chunk. Use "Full URL" only on a complete URL where reserved characters like /?&= should be preserved.

About this tool

URL encoding (also called percent-encoding) replaces characters that are unsafe or have special meaning in URLs with a % followed by their hexadecimal byte value. Spaces become %20, & becomes %26, and so on. This tool handles encoding and decoding entirely in your browser.

Component vs Full URL

  • Component mode uses encodeURIComponent() and treats every reserved character as something to encode. Use it on individual pieces of a URL — a query string value, a path segment, a fragment — where you don't want /, ?, &, or = to keep their structural meaning.
  • Full URL mode uses encodeURI(), which leaves reserved characters intact. Use it on a complete URL where you need https://example.com/path?key=value to remain a working URL after encoding.

When in doubt, component mode is the safer choice for embedded values. Encoding a query string value with full-URL mode is a common bug — the & inside your value won't be encoded and will break the rest of the query string.

Spaces: %20 vs +

In URL paths, a space must be encoded as %20. In application/x-www-form-urlencoded bodies (and historically in query strings), spaces are encoded as +. This tool always outputs %20, which is valid in both contexts. Decoders should accept both.

Frequently asked questions

Does this handle Unicode?
Yes. Both encodeURIComponent and encodeURI emit UTF-8 byte sequences. A character like é becomes %C3%A9.
Why does my decoded URL still have <code>%25</code> in it?
Because the input was double-encoded — the % in the original encoding got encoded again to %25. Run the decode again to recover the original.
How do I encode a value going into a query string?
Use component mode on each value, then assemble: key=<encoded-value>&next=<encoded-next>. Encode each value separately — never encode the whole query string at once, or your & and = separators will get escaped.
Is percent-encoding the same as URL encoding?
Yes — "URL encoding" and "percent-encoding" are the same thing. The official name is percent-encoding (RFC 3986); "URL encoding" is the common nickname.

Last updated: May 17, 2026