Skip to content
Bai
EspañolEnglishEuskara Get started →

Tools

URL decode

URL decode to readable text

Turn the %20s and %C3%B1s in a URL back into readable text.

Private by design
Uses JavaScript's encodeURIComponent and decodeURIComponent: meant for parameter values, not for a whole URL.

About this tool

Shared links, links generated by ad platforms and URLs in server logs are often full of sequences like %20, %2F or %C3%A9 that make them impossible to read. Decoding shows you the real text: what someone searched for, what value a UTM parameter carries, where a redirect points, or what your form is actually receiving.

Paste the encoded text into “URL to decode” and the readable result appears under “Decoded text” as you type. You can paste a whole URL: the parts that aren’t encoded stay as they are. If there is a malformed % sequence you’ll see a warning in red. “Switch to encode” goes the other way so you can check the result.

Decoding uses JavaScript’s decodeURIComponent and happens inside your browser, without sending the URL anywhere, which is worth knowing if it contains tokens or personal data. Bytes are read as UTF-8, as is usual on the web. A + sign is not turned into a space: if your text comes from an HTML form, replace + with %20 first.

Frequently asked questions

What does %20 mean in a URL?

It is an encoded space. The number after the % is the byte’s hexadecimal value: 20 is a space, 2F a slash, 3F a question mark and 26 an ampersand.

Why do I get an error when decoding?

There is a % that isn’t followed by two valid hex digits, or a sequence that doesn’t form a complete UTF-8 character, often because the URL was cut short. Look at the part where the stray % appears.

Why do + signs stay as +?

decodeURIComponent only interprets %XX sequences. Treating + as a space is an HTML form convention; if your text comes from a form, change + to %20 before decoding.

What if the URL has been encoded twice?

You’ll see things like %2520 instead of %20. Decode once, copy the result, paste it back into the input and decode again.

Related tools