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.
| # | Key | Value (decoded) | Actions |
|---|
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.