Encode text for use in URLs, or decode existing query strings without
reaching for command line helpers. Switch between
encodeURIComponent and encodeURI, tune how
spaces are treated, and preview decoding in multiple passes.
- Live encoding and decoding with optional auto-run toggles.
- Smart decode mode that falls back between URI and component rules.
-
Quick reference for reserved characters and their encoded values.
Reserved Character Cheatsheet
These characters have special meaning inside URLs. Encoding protects
them when they should be treated as literal text rather than
separators or operators.
| Character |
Encoded |
Usage |
| Space |
%20 or + |
Separates words; “+” commonly used in form submissions |
| ! |
%21 |
Sub-delimiters, rarely reserved today |
| # |
%23 |
Fragment marker within URIs |
| $ |
%24 |
Parameter delimiter in some schemes |
| & |
%26 |
Separates query parameters |
| ' |
%27 |
Literal apostrophe |
| ( ) |
%28 %29 |
Grouping characters |
| * |
%2A |
Historically reserved; safe to encode |
| + |
%2B |
Addition operator or space (form encoding) |
| , |
%2C |
List separator in some contexts |
| / |
%2F |
Path segment separator |
| : |
%3A |
Scheme separator (e.g., https:) |
| ; |
%3B |
Alternate parameter delimiter |
| = |
%3D |
Assigns values in query strings |
| ? |
%3F |
Starts the query string |
| @ |
%40 |
User info separator before host |
| [ ] |
%5B %5D |
IPv6 address delimiters |
RFC 3986 defines unreserved characters as A-Z, a-z, 0-9, "-", "_", ".",
and "~". Everything else should be encoded when used as plain data.