URL encoder & decoder
Percent-encode and decode URLs and query strings.
FreeRuns in your browserNo signupUpdated 2026-10-29
Non-ASCII text is encoded as UTF-8 bytes, so ₹ becomes %E2%82%B9.
Status
Encoded
Output length
130
+42 characters
Escapes
20
Percent sequences
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dweb%20design%20%26%20development%26city%3DHyderabad%2C%20India%26price%3D%E2%82%B91%2C000
Query parameters (decoded)
| Key | Value |
|---|---|
| q | web design |
| development | (empty) |
| city | Hyderabad, India |
| price | ₹1,000 |
About this tool
How it works and how to read the result.
Need this done for you?
Web app & SaaS development
SaaS products and web apps, from first version to scale.
See the serviceWhat it does
Use the URL decoder to turn a percent-encoded link back into readable text, or the encoder to prepare text for a query string or a path. Encoding follows the same rules as the browser's encodeURIComponent and encodeURI, with the choice explained next to each option. Non-ASCII characters are encoded as UTF-8 bytes, so a rupee sign becomes %E2%82%B9. A checkbox handles the form convention of plus signs for spaces. When the text contains a query string, the parameters are listed decoded in a table, which is the quickest way to read a long tracking or search URL.
How to use it
- Choose Encode or Decode.
- Paste the text. For encoding, pick whether it is a single value for a query string or a complete URL.
- Tick "Treat + as a space" if the text came from or is going into an HTML form.
- Copy the result, and check the parameter table to confirm each key and value came through as intended.
How to read the result
The escapes card counts percent sequences. Encoding the query value web design & development as a component gives web%20design%20%26%20development, four escapes: three spaces and one ampersand. Had you used the whole-URL mode, the ampersand would have stayed, and a server would have read it as the start of a new parameter named development. That is the most common URL encoding bug.
The parameter table shows the decoded keys and values of everything after the question mark. A link with utm_source=newsletter&page=2 lists two rows; an empty value shows as "(empty)". A row whose key looks like half of the previous value means an unescaped ampersand upstream.
Output length versus input tells you how much a value grows. A 20-character address with spaces and commas becomes about 30 characters, which matters when URLs approach the limits of some older systems around 2,000 characters.
Related: build clean paths with the URL slug generator. Query handling of this kind is routine in web app development.
Questions
Frequently asked.
When should I use encodeURIComponent instead of encodeURI?
Use encodeURIComponent for a single value you are putting into a query string, because it escapes ampersands, equals signs and slashes that would otherwise change the URL's structure. Use encodeURI only for a whole URL, where those characters must stay as they are.
Why do I see %20 in some links and a plus in others?
Both mean a space. Percent-encoding uses %20 everywhere. HTML forms submitted with the default encoding use a plus for spaces in the query string only. Tick the plus option when decoding form data, and leave it off for paths and most APIs.
What does "malformed" mean when decoding?
A percent sign must be followed by two hexadecimal digits. "100% free" contains a bare percent sign, and "%E2%82" is an incomplete multi-byte sequence. Both fail to decode. Encode the original text first, or fix the truncated sequence, and try again.
Your next move
Like what you see? Tell us about it.
A process that takes too long, a website that undersells you, or an idea ready to take shape. Tell us where you are and we will suggest a useful next step.
India · Working with clients worldwide