Encode special characters in URLs (percent-encoding) or decode %xx encoded strings back to readable text. Supports encodeURIComponent and full URI encoding. Handles unicode, spaces, and special characters.
Free, no sign-up — one of the SaaSQuickStart Developer tools.
URL encoding (percent-encoding) replaces unsafe ASCII characters and non-ASCII bytes with a %XX sequence where XX is the hexadecimal byte value. This tool uses encodeURIComponent() (encodes everything except A-Z a-z 0-9 - _ . ! ~ * ' ( )) or encodeURI() (preserves characters that have structural meaning in a full URI, such as / ? # : @). Decoding uses decodeURIComponent(). Everything runs in the browser — no network requests.
Use "Encode component" (encodeURIComponent) when encoding a query parameter value or a path segment — it encodes /, ?, #, and other URL structural characters so they are treated as literal data. Use "Encode full URI" (encodeURI) when encoding a complete URL — it preserves the structural characters so the URL remains valid.
In the path and query string of a URL, spaces must be encoded. RFC 3986 specifies %20. However, HTML form encoding (application/x-www-form-urlencoded) uses + for spaces in query strings. This tool uses %20 (RFC 3986). When interacting with HTML forms, your server framework usually handles the + → space conversion automatically.
Unreserved characters that never need encoding: A-Z, a-z, 0-9, hyphen (-), underscore (_), period (.), and tilde (~). All other characters must be percent-encoded when used as literal data in a URL component.
The URL was probably double-encoded — encoded once, then encoded again. Use the Swap button to put the decoded output back into the input and decode again. Alternatively the URL may contain invalid percent sequences; those are left as-is by the decoder.