RFC 3986 URL Encoder + Character Map
Compare encodeURI, encodeURIComponent, and strict RFC 3986 — and see exactly which characters each one replaces
For when the question isn't 'encode this' but 'which encoding do I actually need?'. Choose one of three targets — query parameter value (encodeURIComponent), whole-URL safe (encodeURI), or strict RFC 3986 — and each option explains what it escapes and what it leaves alone. Strict mode also encodes ! ' ( ) and *, the characters JavaScript's encodeURIComponent skips, which is what trips up OAuth signatures and picky server APIs. Below the result, a live mapping table shows every character that changed and what it became, including multi-byte UTF-8 runs. Decoding is supported for percent-encoded parameter values.
🔒 Everything runs 100% in your browser. Your files and input are never uploaded to any server.
How to use
- Choose Encode or Decode mode.
- To encode: pick your target spec (query parameter value, whole-URL safe, or RFC 3986), then enter your text.
- To decode: paste text containing %20, %EA%B0..., and so on to get the plain text back.
- Review the live byte mapping table showing each encoded character (Space → %20, and so on).
FAQ
- When should I use encodeURI instead of encodeURIComponent?
- encodeURI preserves the characters that make a URL a URL (: / ? & = + and friends), so it's for encoding a whole address. encodeURIComponent encodes those too — which is exactly what you want for a single query string value, so it doesn't break the URL structure.
- Why would I need strict RFC 3986 encoding?
- JavaScript's built-in encodeURIComponent leaves a handful of characters alone: ! ' ( ) and *. When you're signing OAuth requests or talking to a strict server API, those need encoding too, and mismatches cause signature or parsing failures.
- Is a space always encoded as %20?
- Not always. encodeURI, encodeURIComponent, and RFC 3986 all represent a space as %20, but the application/x-www-form-urlencoded format used by traditional form submissions instead replaces spaces with a plus sign (+). This tool follows the URI-encoding standard (%20), so keep that distinction in mind when you're working with form data.
