URL Encoder & Decoder

Convert special characters in a URL or query value to %XX form, or decode an encoded URL back to readable text.

Free · Runs in your browser · Your text is never uploaded

A web address with spaces and symbols encoded with percent codes and back

When URLs need encoding

URLs may only contain a limited set of characters. Anything else, such as spaces, accents, emoji and reserved characters like &, ? and # when used as data, must be written as a percent sign and two hex digits (a space becomes %20).

Which mode should I use?

  • A value or parameter: encodes everything except letters, digits and - _ . ! ~ * ' ( ). Use it for a single query value so an ampersand inside the value does not split the parameter.
  • A whole URL: keeps structural characters like :/?#&= intact and encodes the rest, such as spaces and non-ASCII letters.
  • + for spaces: HTML forms encode spaces as plus signs. Use this when preparing or reading application/x-www-form-urlencoded data.

Popular url encoder & decoder presets

Frequently asked questions

What does %20 mean in a URL?

It is a percent-encoded space. The number 20 is the space character’s code in hexadecimal.

What is the difference between encodeURI and encodeURIComponent?

encodeURI (“A whole URL”) leaves URL structure characters alone; encodeURIComponent (“A value”) encodes them too, which is what you want for individual parameter values.

Why does decoding fail with a % error?

A percent sign must be followed by two hex digits. A stray % or a truncated sequence cannot be decoded.

Should spaces be %20 or +?

In the path of a URL use %20. In form data and many query strings + also means a space.