How to decode a URL
- Paste the encoded link or value into the box above.
- Leave Treat + as a space on for query strings.
- Turn on repeat decoding if you still see %25 or %20.
- Read the decoded text and the number of passes.
- Copy the result or download it.
What this URL decoder gives you
- Standard percent decoding with full UTF-8 support.
- Plus signs turned into spaces to match form data.
- Repeat decoding for strings encoded twice or more.
- A count of how many passes the string needed.
- Clear errors when a percent sign lacks two hex digits.
- Live updates with no upload.
Why use a URL decoder?
Encoded links are hard to read. A tracking link arrives as a wall of percent signs. So does a redirect chain or a logged request. The useful part hides inside the escapes. You want to know where the link points. You want to know what the parameters say.
A URL decoder turns it back into text. %20 becomes a space. %2F becomes a slash. %C3%A9 becomes é. What looked like noise becomes obvious in a second.
The double encoding problem
See %2520 in a link? Someone encoded it twice. The first pass turned a space into %20. The second pass turned that percent sign into %25. The result reads %2520.
This happens all the time in redirect chains. One layer encodes a link to pass it as a parameter. Another layer encodes the whole thing again. A single decode still leaves %20 on screen.
The repeat option keeps decoding until the string stops changing. It also reports the number of passes. That number tells you how many layers of encoding exist. It points you to the spot in your code that adds the extra one.
Plus signs can mean two things
| Where the plus appears | What it means |
|---|---|
| Query string or form data | A space |
| Path segment | A real plus sign |
| Phone number such as +44 | A real plus sign |
The string itself gives no hint about its source. So the choice is yours. The option starts on because people decode query strings most often. Turn it off for a path. Turn it off for values with a real plus. A phone number shows why. A result of " 44" from +44 is clearly wrong.
When decoding fails
A percent sign needs exactly two hex digits after it. Without them the string cannot decode. Two causes explain most cases. Part of the string fell off when someone copied it. Or nobody encoded a raw percent sign in the first place.
Broken UTF-8 also fails. %C3 alone is the first byte of a two byte letter. The second byte is missing. That is a sign someone cut the string short.
Read the parameters the easy way
A decoded link is easier to read. A view of its parts is often even better. The URL parser separates the protocol and host. It also splits out the path, query and fragment. It lists every parameter with its value already decoded. You skip the manual work entirely.
Common URL decoder problems
I still see %20 after decoding
The link had two layers of encoding. Turn on repeat decoding.
My plus signs turned into spaces
Turn off the plus option. Then decode again.
The tool shows an error
Look for a lone percent sign. Copy the full link again if part of it went missing.
Tips for working with encoded links
- Decode one value at a time when a link is long.
- Count the passes to find where extra encoding starts.
- Check tracking links before you click them.
- Keep tokens out of shared screenshots.
A quick URL decoder example
Paste name%3DJos%C3%A9%26city%3DS%C3%A3o%20Paulo into the box. The tool shows name=José&city=São Paulo. Each accented letter came from two codes. The equals signs and ampersand come back too. Now the two parameters are plain to see. You can spot a typo or a wrong value right away.
Who uses a URL decoder?
Developers read logs and debug redirects. Marketers check campaign tags. SEO teams audit redirect chains. Support staff read links that customers paste in.
Your links stay private
Your browser does all the decoding. That matters because links often carry session tokens and user IDs. Need to go the other way? Use the URL encoder. Found Base64 inside a parameter? Try the Base64 decoder.