Encode a URL or text

Percent-encode text in your browser with the right mode: full URI, query-component or form encoding (+ for spaces). Instant and nothing uploaded.

Paste a URL or any text and get its percent-encoded form, choosing the mode that matches your target: Component escapes the reserved characters (/ ? & =) so a value can sit safely inside a query parameter; Full URI keeps those characters so a whole URL stays a working URL; Form mode encodes spaces as + the way HTML forms and application/x-www-form-urlencoded do.

Picking the wrong mode is the classic bug: encodeURIComponent-ing a whole URL turns its slashes into %2F and the link breaks, while encodeURI-ing a query value leaves the & inside it splitting parameters. The mode labels tell you which is which — query values take Component, whole links take Full URI, mailto and legacy form bodies take Form.

Non-Latin text encodes to UTF-8 percent-sequences exactly as browsers do, so the output is what your server and every client will agree on. Encoding runs locally; nothing you paste is uploaded.

Frequently asked questions

Component or full URI — which one do I need?
Encoding a value that goes inside a query string (a search term, a redirect target): Component. Encoding a complete URL that must remain a URL: Full URI. Submitting an HTML form body the legacy way: Form.
Why did my whole URL turn into %2F everywhere?
You component-encoded a full URL — that mode deliberately escapes / ? & = because a URL used as a *value* must not keep its structure. Switch to Full URI mode.
Does it handle spaces, + and emoji?
Spaces become %20 (or + in Form mode, with a literal + escaped so it can't be misread), and emoji encode to their UTF-8 percent sequences like every browser would.