URL Decoder
URL decode any link or percent-encoded text, and see its query parameters as a table.
Encoded URL or text
Decoded
How to decode a URL
- Paste the URL or percent-encoded text on the left.
- The decoded text appears on the right as you type. Turn off “+” as space if a literal plus sign should stay a plus.
- Switch the output to Query table to see each parameter and its decoded value, then copy or download the result.
URL decoding examples
https://shop.example/search?q=caf%C3%A9+au+lait&size=M%2FL
→ https://shop.example/search?q=café au lait&size=M/L100% organic %E2%9C%93
→ 100% organic ✓ (the lone % is kept, with a note)Common percent-encoded characters
| Encoded | Decoded | Note |
|---|---|---|
| %20 | space | also written as + in query strings |
| %2F | / | slash inside a parameter value |
| %3F | ? | question mark |
| %26 | & | ampersand, separates parameters |
| %3D | = | equals sign |
| %25 | % | the percent sign itself |
| %23 | # | hash, starts the fragment |
| %C3%BC | ü | two UTF-8 bytes |
| %E2%82%AC | € | three UTF-8 bytes |
| %F0%9F%91%8B | 👋 | four UTF-8 bytes |
Every %XX is one byte in hexadecimal. Characters outside ASCII take two to four bytes in UTF-8, which is why one emoji turns into four sequences.
Decoding URLs when debugging APIs
Redirect URLs, OAuth callbacks and tracking links often nest one encoded URL inside another, so you may need to decode twice: %253A decodes to %3A, which decodes to :. Tokens in a callback URL are often JSON Web Tokens — read them with the JWT decoder. Timestamps such as expires=1760436000 become readable dates in the Unix timestamp converter, and Base64 values decode in the Base64 decoder.
Encode instead
To build a URL from text, use the URL encoder, which explains when to use encodeURIComponent and when encodeURI.
Frequently asked questions
- What does URL decoding do?
- It turns percent-encoded characters back into normal text: %20 becomes a space, %2F a slash and %C3%BC the letter ü. Each %XX is one byte, and bytes are read as UTF-8, so accented letters and emoji come back correctly.
- Should “+” be decoded as a space?
- In query strings and HTML form data, yes — browsers encode spaces in forms as +. In the path of a URL, + is a literal plus sign. The “+ as space” option is on by default because most pasted URLs come from query strings; turn it off for paths.
- Why doesn’t decodeURIComponent work on my text?
- JavaScript’s decodeURIComponent throws an error on any broken sequence, such as a lone % (“100% sure”) or bytes that aren’t valid UTF-8. This decoder decodes everything it can and keeps the broken parts as they are, with a note saying where they are.
- How do I see the parameters of a URL?
- Paste the full URL and switch the output to Query table. Every parameter is listed with its decoded name and value, including repeated parameters and empty values.
- Is my URL sent anywhere?
- No. Decoding runs in your browser. URLs often contain tokens and personal data, so nothing you paste is uploaded or logged.
Related tools
- URL encoderPercent-encode text and URLs.
- Base64 decoderDecode Base64 to text or files, UTF-8 and URL-safe.
- JWT decoderDecode JWT header and payload and check expiry.
- JSON formatter and beautifierBeautify and pretty print JSON, optionally sorting keys.
- Unix timestamp converterConvert epoch timestamps to dates and back.