URL Encoder & Decoder

Percent-encode and decode URLs with the right semantics — full URL, query component, or form data — and inspect the parts of any URL.

Common percent-encodings

CharacterEncodedNotes
space%20 or ++ only in form data
!%21Reserved sub-delim
#%23Fragment delimiter
&%26Query separator
?%3FQuery start
=%3DQuery key/value separator
/%2FPath separator
+%2BOtherwise interpreted as space in form data

Frequently asked questions

How does this handle non-ASCII characters?

Both encodeURI and encodeURIComponent first encode characters as UTF-8 bytes, then percent-encode each byte. So é (U+00E9) becomes the two bytes C3 A9 and is encoded as %C3%A9. This matches what every modern HTTP client and server expects.

Should I double-encode my URL parameters?

No. Each layer of encoding only happens once. If you encode a value that's then placed in a URL by another tool that re-encodes, the % in your output gets turned into %25 and the URL becomes broken. Pass already-encoded URLs as-is or pass raw strings — never encode twice.

Is my input sent anywhere?

No. Encoding and decoding use the browser's built-in functions; nothing leaves your tab.