URL Encoder / Decoder

Percent-encode or decode any text or URL — component, whole-URL, or form mode, batch and recursive options. Runs entirely in your browser, no server, no sign-up.

Result

What this tool does

Percent-encode (URL-encode) or decode text and URLs instantly, right in your browser. Nothing is sent to a server — it runs locally, works offline, and needs no sign-up. Pick a Mode and a Target, and optionally turn on Per line or raise Repeat.

Modes

ModeWhat it does
encode (default)Turns unsafe characters into %XX escapes — a space becomes %20, ã becomes %C3%A3.
decodeReverses it — turns %XX escapes back into the original characters.

Target — the encoding style

TargetWhat it escapesUse it forJS equivalent
component (default)Everything except letters, digits, and - _ . ~A single query value or path segmentencodeURIComponent
uriOnly unsafe bytes; keeps URL delimiters (: / ? # @ & = …)Cleaning a whole URL without breaking itencodeURI
formLike component, but a space becomes +HTML form bodies and +-style query strings (application/x-www-form-urlencoded)

When decoding with form, a + turns back into a space.

Batch and repeat

Examples

InputSettingsOutput
São Pauloencode · componentS%C3%A3o%20Paulo
name=John Doe&city=xencode · componentname%3DJohn%20Doe%26city%3Dx
https://ex.com/a b?x=1&y=2encode · urihttps://ex.com/a%20b?x=1&y=2
a b+cencode · forma+b%2Bc
a%2520bdecode · repeat 2a b
S%C3%A3o%20PaulodecodeSão Paulo

FAQ

Is it free and private?

Yes — your input never leaves your device, and it keeps working offline once the page has loaded.

When should I use form instead of component?

Use form when the value goes into an HTML form submission or a query string that encodes spaces as +. Use component for modern percent-encoded URLs, where a space is %20.

How does this map to JavaScript?

component matches encodeURIComponent, uri matches encodeURI, and form additionally turns spaces into +.

My string looks like it's encoded twice — how do I fix it?

Decode with the Repeat field set to 2 (or higher) to peel off each layer of encoding.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool url-encode "name=John Doe&city=São Paulo"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/url-encode/?text=name%3DJohn%20Doe%26city%3DS%C3%A3o%20Paulo&mode=encode&target=component&per_line=true&repeat=1

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.