URL Encoder & Decoder

Percent-encode and decode URLs in RFC 3986, encodeURIComponent, encodeURI and form (+ for space) modes, with URL parsing, query parameter table and punycode domain conversion.

Workspace

Modes differ in which characters stay unencoded; details are in “How the result is calculated”.

International domain names (IDN ↔ punycode)

How the result is calculated

Text is converted to UTF-8 bytes and every byte outside the allowed set becomes an uppercase %XX. Sets: RFC 3986 keeps only A-Z a-z 0-9 - . _ ~; encodeURIComponent also keeps ! * ' ( ); encodeURI additionally keeps the structural characters ; , / ? : @ & = + $ #; form (WHATWG) keeps A-Z a-z 0-9 * - . _ and turns space into +. When decoding, the bytes are checked as valid UTF-8 and a note appears if %XX sequences remain (double encoding). International domains are decoded with Punycode (RFC 3492); the reverse direction uses the browser URL parser.

Limits: The tool does not implement full IDNA2008 validation (cases such as ß and joiners), so ASCII conversion depends on the browser URL parser. In encodeURI mode escapes of reserved characters are deliberately left encoded. Secrets in URLs (tokens, passwords) are never sent to a server, but do not paste them in public places.

FAQ

What is the difference between encodeURI and encodeURIComponent?

encodeURI leaves URL structure characters (/ ? & = #) because it encodes a whole URL; encodeURIComponent encodes them because it is meant for a single value such as a query parameter.

Why does a space become +?

In form encoding (application/x-www-form-urlencoded) a space is written +, while in a URL path it is %20. Choose the matching mode.

What is double encoding?

Encoding already-encoded text again, so %20 becomes %2520. The tool warns when %XX sequences remain after decoding.

Newest tools

Recently added free tools — they run in your browser without uploading your data

All tools →

Compare two texts by line, word or character with the Myers algorithm, a similarity score and a unified patch export

Local

Turn titles into clean URL slugs with Arabic transliteration, diacritic removal, stop words and a length limit

Local