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
- Paste your URL-encoded string into the input
- Click decode to convert to plain text
- The output shows the decoded text
- Review for any remaining encoded sequences
- 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.