URL Encoder & Decoder
Percent-encode and decode URLs with the right semantics — full URL, query component, or form data — and inspect the parts of any URL.
Common percent-encodings
| Character | Encoded | Notes |
|---|---|---|
| space | %20 or + | + only in form data |
| ! | %21 | Reserved sub-delim |
| # | %23 | Fragment delimiter |
| & | %26 | Query separator |
| ? | %3F | Query start |
| = | %3D | Query key/value separator |
| / | %2F | Path separator |
| + | %2B | Otherwise interpreted as space in form data |
Frequently asked questions
How does this handle non-ASCII characters?
Both encodeURI and encodeURIComponent first encode characters as UTF-8 bytes, then percent-encode each byte. So é (U+00E9) becomes the two bytes C3 A9 and is encoded as %C3%A9. This matches what every modern HTTP client and server expects.
Should I double-encode my URL parameters?
No. Each layer of encoding only happens once. If you encode a value that's then placed in a URL by another tool that re-encodes, the % in your output gets turned into %25 and the URL becomes broken. Pass already-encoded URLs as-is or pass raw strings — never encode twice.
Is my input sent anywhere?
No. Encoding and decoding use the browser's built-in functions; nothing leaves your tab.