URL Encoder / Decoder

Percent-encode text and URLs containing spaces or special characters, or decode a garbled %XX URL back to readable text. Paste a URL to see its path and query parameters in a table.

URL parser

About the URL Encoder / Decoder

URLs may only contain letters, digits and a few symbols, so spaces and characters such as é or ü must be percent-encoded (for example é → %C3%A9). That is why a link that looks readable in the address bar turns into a long string of %C3… codes when you copy it.

This tool supports both JavaScript methods, encodeURIComponent and encodeURI, and if a % sequence is malformed it tells you exactly which character is the problem.

How to use

  1. Choose Encode or Decode.
  2. Pick Value (Component) for a single search term or parameter value, or Full URL (URI) for a complete address.
  3. The result updates as you type. Click ⇅ Use output as input to convert it back the other way.
  4. Paste an address into the URL parser below to see its protocol, host, path and query parameters separately.

encodeURIComponent vs encodeURI

CharactersencodeURIComponentencodeURI
Spaces, non-ASCII (é, ü, 日)encodedencoded
: / ? # & = + , ; @ $encodedkept
A-Z a-z 0-9 - _ . ! ~ * ' ( )keptkept

If a query value contains & or =, encodeURI will split the parameters incorrectly. Always use the Component method for values.

Is a space %20 or +?

In the URL standard (RFC 3986) a space is %20. HTML form submissions (application/x-www-form-urlencoded), however, write spaces as +, which is why a Google search URL looks like q=coffee+shop. Turn on + as spaces when decoding such URLs.

FAQ

Decoding says the bytes are not valid UTF-8.

Some older sites encode characters in Windows-1252 or ISO-8859-1, where é is a single byte (%E9). Modern browsers and this tool use UTF-8 (where é is %C3%A9), so such legacy URLs can’t be decoded as text.

What happens if a URL is encoded twice?

Every % becomes %25, giving strings like %25C3%25A9. If you see lots of %25 in a result, it was double-encoded. Decode it twice.

Are international domain names percent-encoded?

No. Domains use Punycode instead (starting with xn--). For example münchen.de becomes xn--mnchen-3ya.de, which the URL parser shows as the host.