Skip to content
URL Encode / Decode
Percent-encode query values, Unicode, and emoji. Component or full.
Blog

URL encode, both ways.

Percent-encode query values, Unicode, and emoji — and decode them back. Choose component (value) or full URL.

Input

Getting ready. Input becomes available when the tool is ready. If this message stays, reload or check that JavaScript is enabled.

Output
Output appears here.

Component vs full URL — pick the right scope

Component uses encodeURIComponent and escapes reserved characters like / ? # & = — use it for a single query value or path segment. Full URL uses encodeURI and leaves delimiters intact, but only for URL text that has not yet been percent-encoded. Re-encoding %20 produces %2520. To build a new query, pass the raw value to URL.searchParams.set.

The “+ means space” gotcha

URLSearchParams("q=a+b").get("q") returns a b because query parsing uses form-urlencoded rules. decodeURIComponent("a+b") returns a+b. Use %2B for a literal plus in a query. “Treat + as space” applies only in Component mode to a manually copied query/form value; Full URL mode preserves + everywhere.

Unicode round-trips cleanly

Korean, Japanese, and emoji encode to UTF-8 percent sequences and decode back exactly. Broken sequences (like a truncated %) are reported instead of producing garbage.

FAQ

Why is my slash being encoded?
You are in Component mode, which escapes /. Switch to Full URL to keep path separators readable.
Is it safe for secrets in query strings?
No. The converter handles pasted input in your browser; Cloudflare Web Analytics may process page views separately. Visiting or sharing a URL containing a value can expose it in requests, logs and browser history. Do not put secrets in a URL.