It usually starts the same way.
You paste a link somewhere… and it doesn’t work.
Or you copy something from an API response and see a mess like this:
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world
At that moment, you’re not thinking about “percent encoding” or RFC rules. You just want to know:
What is this, and how do I turn it back into a normal URL?
That’s exactly why this tool exists.
You can use it here:
It’s a simple URL Encoder / Decoder, nothing more and nothing less. Paste a URL or a string, and it tells you what it actually means.
No setup. No extensions. No switching between tabs trying to remember JavaScript functions.
Just decode it.
Why URLs turn into this weird format
URLs aren’t allowed to contain every character freely.
Spaces, symbols like &, =, ?, and even non-English text need to be converted into something the browser can safely transmit.
So instead of:
hello world
you get:
hello%20world
This process is called percent encoding. It’s what keeps URLs valid across browsers, servers, APIs, and everything in between.
The problem is: once encoded, humans can’t really read it anymore.
That’s where things get annoying.
The moment you actually need this tool
Nobody thinks about URL encoding… until they absolutely have to.
It usually shows up in situations like:
- Debugging API responses full of encoded strings
- Copying OAuth redirect URLs that look broken
- Working with query parameters that contain special characters
- Dealing with webhooks or tracking links
- Or just trying to figure out “what is this URL even saying?”
At some point, everyone ends up searching something like:
“url decode online”
And honestly, that’s exactly the moment this tool was made for.
Encode vs Decode (without the confusion)
There are really just two things happening here:
Encode
- Turns normal text into a URL-safe format
- Example:
hello world → hello%20world
Decode
- Turns encoded strings back into readable text
- Example:
hello%20world → hello world
That’s it.
No complicated settings. No need to know JavaScript’s encodeURIComponent vs encodeURI. Just convert and move on.
Why not just write a script?
You could.
Most developers eventually do.
But when you’re debugging something quickly, opening a browser tab is just faster than:
- opening an editor
- writing a function
- running it
- copying output
- then closing everything again
This tool exists for that “I just need it right now” moment.
Works great with other developer tools
URL encoding is usually not the only weird thing you run into.
If you’re already dealing with encoded URLs, you’re probably also seeing other “machine-only formats”.
For example:
- UUIDs like
550e8400-e29b-41d4-a716-446655440000
→ you can generate or test them with our UUID Generator:
https://www.laozcgai.com/uuid - Unix timestamps like
1704067200
→ you can convert them instantly with our Unix Timestamp Converter:
https://www.laozcgai.com/unix - Unicode escape strings like
\u4F60\u597D
→ decode them with our Unicode Tool:
https://www.laozcgai.com/unicode
It’s all the same idea: data that machines love, humans don’t.
A small note on “double encoding”
One common issue developers run into is encoding something… twice.
It looks like:
hello%2520world
Instead of:
hello%20world
This happens when a string is encoded more than once before being sent or stored. It’s a small mistake, but it can break APIs or redirect URLs in confusing ways.
This tool helps you spot that immediately—just decode it once and see what’s really going on.
Final thoughts
URL encoding is one of those things that feels invisible until it suddenly isn’t.
Most of the time, you don’t need to think about it at all.
But when you do, you usually need a quick answer—not a documentation rabbit hole.
That’s what this page is for.
If you’ve got a messy URL, an encoded query string, or just something that “doesn’t look right,” paste it here:
Decode it. Encode it. Move on.