URL Decoder

The URL Decoder converts percent-encoded URL strings back to their original text. It reverses the URL encoding process, converting sequences like %20 back to spaces, %26 back to ampersands, and %E2%82%AC back to the euro sign. This decoder is essential for reading encoded URLs, debugging API parameters, and extracting original data from query strings. It handles both percent-encoding (%20) and plus-encoding (+ for spaces).

Formula

URL decoding:
- %XX → character with hex value XX
- + → space (in form data)
- %20 → space
- %26 → &
- %3D → =
- Multi-byte: %E2%82%AC → EUR

Standard: RFC 3986

Example

Input: Hello%20World%20%26%20Calczy%21 Output: Hello World & Calczy! Input: search%3Fq%3Dpython%20tutorial Output: search?q=python tutorial

How to Use

  1. Paste your URL-encoded string into the input
  2. Click decode to convert to plain text
  3. The output shows the decoded text
  4. Review for any remaining encoded sequences
  5. Copy the decoded text for your use

Frequently Asked Questions

What is URL decoding?

URL decoding reverses percent-encoding, converting %XX sequences back to their original characters. This is necessary when reading encoded URLs, parsing query strings, or displaying encoded data to users.

How does the decoder handle + signs?

In application/x-www-form-urlencoded data, + represents a space. The decoder can convert + to space. However, in standard URLs, + is a literal plus sign. You can configure this behavior.

What happens with invalid percent sequences?

If the input contains invalid percent sequences (like %GG or %2), the decoder will either skip them, show an error, or leave them as-is, depending on the configuration. Most decoders are lenient.

Can I decode double-encoded URLs?

Yes, but you need to decode twice. For example, %2520 is %20 after one decode, and a space after two decodes. Double-encoding can happen when encoded data is encoded again by mistake.

How are Unicode characters decoded?

Multi-byte percent sequences are combined and converted from UTF-8 to Unicode. For example, %E2%82%AC is three bytes that form the euro sign in UTF-8. The decoder handles this automatically.