URL Encoder Decoder

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.

Encode Text

Encoding options
Ready to encode.

Decode Text

Decoding strategy
Waiting for encoded input.

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.