URL Encoder & Decoder
Encode text so it is safe inside a URL, or decode %20-style text back to readable characters. Paste a full URL to see its host, path and every query parameter decoded.
Encode or decode a URL
Percent-encoding · updates as you type.
Encoded
URL parts
Query parameters
How to use it
- Choose Encode or Decode.
- When encoding, pick what you are encoding: a single value (most common), a whole URL, or form data where spaces become +.
- Type or paste in the left box; the result appears on the right.
- For a full URL, check "URL parts" and "Query parameters" below to see each piece decoded.
Good to know
- Value or whole URL?
- encodeURIComponent escapes everything except letters, digits and - _ . ! ~ * ' ( ), which is right for a single query value. encodeURI leaves the characters that give a URL its structure (: / ? # & =) alone, so use it for a complete address.
- Unicode
- Characters such as ₹, é or हिन्दी are converted to UTF-8 bytes and then to %XX codes, which is what browsers and servers expect.
- Errors are pinpointed
- A stray % or bytes that are not valid UTF-8 are reported with their position, instead of a generic "URI malformed" error.
Frequently asked questions
Should a space be %20 or +?
In paths and most of a URL a space is %20. In HTML form submissions (application/x-www-form-urlencoded), a space is written as +. Choose "Form data" to get +, and tick "Treat + as a space" when decoding form data.
Why does my decoded text still contain %20?
It was probably encoded twice (a % became %25). Click "decode again" to decode it one more time.
What is "URI malformed"?
It is the browser's error for invalid percent-encoding: a % without two hex digits after it, or bytes that are not valid UTF-8. This tool shows where the problem is.
Is URL encoding the same as encryption?
No. It only replaces characters that have special meaning in URLs. Anyone can decode it.