URL encoder / decoder — free
Four encode modes with the exact characters each affects, decoding that pinpoints malformed %-sequences instead of failing, an editable query-parameter table with a live rebuilt URL, full URL anatomy with punycode & homograph warnings, and JSON ⇄ query-string conversion — all on your device.
%20 or + for a space?
Both mean “space”, in different places. %20 is the RFC 3986 percent-encoding and is always safe. + means space only inside an application/x-www-form-urlencoded query string (what an HTML form submits) — in a path, + is just a plus sign. That asymmetry is the classic URL bug: encode a literal + as %2B or the server will read it back as a space. The builder above always emits %20 and %2B, so its URLs mean the same thing everywhere.
Reserved vs unreserved characters (RFC 3986)
| Unreserved — never need encoding | A–Z a–z 0–9 - . _ ~ |
|---|---|
| Reserved delimiters — encode when literal | : / ? # [ ] @ (gen-delims) and ! $ & ' ( ) * + , ; = (sub-delims) |
| JS gap | encodeURIComponent leaves ! ' ( ) * bare even though RFC 3986 reserves them — the “strict RFC 3986” mode above closes that gap. |
A reserved character is fine when it is doing its job (? starting the query, & separating pairs) and must be percent-encoded when it is data (& inside a company name). That is why a whole URL and a single component are encoded differently — and why this tool makes you choose.