Skip to content

URL Decoder

URL decode any link or percent-encoded text, and see its query parameters as a table.

Encoded URL or text

Tab inserts indentation. Press Escape, then Tab, to move focus out of the editor.

Decoded

Output view

How to decode a URL

  1. Paste the URL or percent-encoded text on the left.
  2. The decoded text appears on the right as you type. Turn off “+” as space if a literal plus sign should stay a plus.
  3. Switch the output to Query table to see each parameter and its decoded value, then copy or download the result.

URL decoding examples

A search URL
https://shop.example/search?q=caf%C3%A9+au+lait&size=M%2FL
→ https://shop.example/search?q=café au lait&size=M/L
Text with a broken sequence
100% organic %E2%9C%93
→ 100% organic ✓   (the lone % is kept, with a note)

Common percent-encoded characters

Encoded sequences and the characters they stand for
EncodedDecodedNote
%20spacealso 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.