Skip to content

Text Tools

URL Decoder

Reverses URL encoding to show what a query string or encoded URL actually says.

  • Free
  • No sign-up
  • Runs in your browser

Guide

What percent-encoding is and how decoding reverses it

URLs can only safely carry a limited set of characters. Anything outside that set, such as spaces, accented letters, ampersands inside a value, or slashes inside a query parameter, is written as a percent sign followed by two hexadecimal digits that represent the byte. A space becomes %20, a question mark inside a value becomes %3F, and a colon becomes %3A. This is called percent-encoding or URL encoding.

Decoding is the reverse: every %XX sequence is turned back into the byte it stands for, and the bytes are read as text. Characters outside plain English, such as "é" or Chinese characters, are first turned into UTF-8 bytes and then each byte is percent-encoded, so one visible character can appear as several %XX groups. A decoder reassembles those groups into the original character.

When you end up with an encoded string you need to read

Tracking links carry long query strings, redirect URLs contain another full URL tucked inside a parameter, and web server logs record paths exactly as the browser sent them.

Developers and analysts decode these values to check what a parameter contains, debug a redirect, or read a search term from a log file. To go the other way and prepare text for use inside a link, use the URL Encoder.

How to decode a URL with this tool

  1. Open the page. The input box is filled with a sample encoded address so you can see how it behaves.
  2. Select the text in the "Text to decode" box and replace it with your own encoded string, or clear it and paste.
  3. Read the decoded text in the "Result" box below. It updates as you type, so there is no button to press.
  4. Click Copy to put the result on your clipboard.

The conversion happens in your browser with the standard decodeURIComponent function, and the page has no control that submits your text anywhere.

Limits and common mistakes

The tool decodes the entire input as one block of text. It does not split a URL into host, path and parameters.

A plus sign is left alone. In form submissions a plus often stands for a space, but this decoder only translates percent sequences, so "hello+world" stays as typed.

If the input contains a stray percent sign or a sequence that does not form valid UTF-8, the Result box shows "Invalid input for decoding." and Copy is disabled. Fix the broken part and the result returns. If the output still contains percent sequences, the text was encoded twice and you can paste the result back in to decode it again.

Frequently asked questions

Why does the tool say the input is invalid?

Decoding fails when a percent sign is not followed by two hexadecimal digits, or when the encoded bytes do not form valid UTF-8 text. Look for a lone % in your string and fix or remove it.

Does it turn plus signs into spaces?

No. Only percent sequences such as %20 are decoded. If your string came from a form that uses plus signs for spaces, replace them manually before or after decoding.

Why do I still see percent codes after decoding?

The value was probably encoded twice. Copy the result, paste it back into the input box, and it will be decoded one more level.

Is my text sent to a server?

No. The decoding runs in your browser as you type and the page does not submit the text anywhere.