Skip to content

URL Encoder

Percent-encode or decode text live, then take any URL apart: protocol, host, path and an editable table of query parameters that rebuilds the link as you type.

RunsIn browser
Sign-upNone
UploadsZero
Encode / decode

URL parser & query builder

Query parameters
#KeyValue (decoded)Actions
Readablecopy
Origincopy
Query stringcopy

Which encoding to use

Component (encodeURIComponent) is the one you want most of the time: it escapes everything that has meaning in a URL, so a value like a&b=c can sit safely inside a query string or a single path segment. This tool also escapes ! ' ( ) * for strict RFC 3986 output.

Full URL (encodeURI) is for a complete address that just has spaces or non-ASCII characters in it. It leaves : / ? # & = alone so the URL keeps its structure — which also means it will not protect a value that contains those characters.

Form (+) matches how browsers submit HTML forms (application/x-www-form-urlencoded): identical to Component, except spaces become +. When decoding form data, tick “Treat + as a space”.

Questions

Why is a space sometimes %20 and sometimes +?

Both mean a space, in different contexts. %20 is valid anywhere in a URL. + means a space only in query strings sent by HTML forms; in a path it is a literal plus sign. If you are unsure, use %20.

What does “malformed escape” mean?

A % must be followed by two hex digits, and multi-byte sequences must form valid UTF-8. When they don’t — often because a URL was cut off or encoded with a legacy charset — the decoder keeps the broken part as-is and decodes the rest, instead of failing outright.

How do I spot double encoding?

A space that shows up as %2520 has been encoded twice (% became %25). After decoding, if the result still contains escapes, the tool offers a “Decode again” button.

Can I edit query parameters without breaking the URL?

Yes. Edit keys and values in the table in plain text; the tool re-encodes them and rebuilds the URL live. Values are encoded the way browsers do it, with spaces as +.

Is anything sent to a server?

No. Encoding, decoding and parsing all use your browser’s built-in functions. Nothing you type leaves the page.