URL Encoder / Decoder

Encode or decode URL strings instantly. Supports encodeURI and encodeURIComponent. Live conversion as you type.

Common URL-encoded characters

CharacterEncoded (%xx)Description
%20Space
!%21Exclamation mark
#%23Hash / fragment
$%24Dollar sign
&%26Ampersand (query separator)
'%27Apostrophe
(%28Open parenthesis
)%29Close parenthesis
*%2AAsterisk
+%2BPlus sign
,%2CComma
/%2FForward slash (path separator)
:%3AColon
;%3BSemicolon
=%3DEquals (key=value)
?%3FQuestion mark (query start)
@%40At sign
[%5BOpen bracket
]%5DClose bracket

encodeURI vs encodeURIComponent

encodeURI
Does NOT encode: ; , / ? : @ & = + $ #
Use when encoding a complete URL — it preserves the URL structure characters like / : ? & so the URL remains valid.
encodeURIComponent
Encodes everything except: A–Z a–z 0–9 - _ . ! ~ * ' ( )
Use when encoding a query parameter value — encodes & = ? / etc. so they don't break the URL structure.

Frequently asked questions

When should I URL-encode text?

Whenever you include user input, special characters, or non-ASCII text (like Hindi or emoji) in a URL query parameter. Spaces, &, =, and ? have special meaning in URLs and must be encoded when used as data.

What does %20 mean?

%20 is the URL-encoded representation of a space character. The % sign followed by two hex digits represents the byte value of the character in UTF-8.

Can I encode a full URL?

Use encodeURI for a complete URL (it preserves structural characters like / ? &). Use encodeURIComponent only for individual parameter values, not the full URL.

Why does + sometimes represent a space?

In application/x-www-form-urlencoded format (HTML forms), + is used as a shorthand for space. In a URL path or raw query string, %20 is the standard. This tool uses the standard %20 encoding.

What happens to Hindi or Emoji characters?

Non-ASCII characters are first encoded as UTF-8 bytes, then each byte is percent-encoded. For example, the Hindi character अ becomes %E0%A4%85.