Decode URL-encoded strings back to their original format. Converts %XX sequences back to their original characters.
What is URL Decoder?
URL decoding reverses URL encoding, converting %XX sequences back to original characters. This is essential when receiving URL-encoded data: query parameters from APIs, form submissions, URL path segments, or encoded strings in data files. Decode reveals the actual text content that was URL-safe encoded for transmission.
How to Use
- Paste URL-encoded text (containing %XX sequences)
- Click 'Decode' to convert to original format
- Review the decoded human-readable output
- Copy decoded text for further processing
Why Use This Tool?
Tips & Best Practices
- %20 becomes space character
- %26 becomes ampersand (&)
- %3D becomes equals (=)
- %2F becomes slash (/)
- Invalid % sequences cause errors
- Double-encoded strings need two passes
Frequently Asked Questions
When do I need URL decoding?
When receiving encoded data: query parameters from web requests, API responses with encoded values, URL-encoded JSON in data files, or debugging encoding issues. Any data that passed through URL encoding needs decoding before use.
What happens if decoding fails?
Invalid % sequences (like %XY where XY aren't valid hex, or incomplete %X) cause errors. The decoder rejects malformed input. Double-check the encoded string - it may have been corrupted or truncated during transmission.
Can strings be double-encoded?
Yes - sometimes strings get encoded twice (e.g., %2520 for originally %20). Double-encoded strings need two decode passes. Look for patterns like %25 (encoded %) to identify double encoding. Decode once, then check if result still has % sequences.
How do I decode in JavaScript?
decodeURIComponent(encodedString) decodes full encoded strings including special characters. decodeURI(encodedURL) decodes URLs but preserves structure characters (:/?=&). For parameter values, use decodeURIComponent.
What about plus signs?
In old URL encoding standards, + represented spaces. Modern encoding uses %20 for spaces. This tool uses decodeURIComponent which handles %20, not + as space. If your data uses + for spaces, replace + with %20 before decoding.
How are non-ASCII characters decoded?
Multi-byte UTF-8 sequences decode correctly. café encoded as caf%C3%A9 decodes back to café. Chinese, emojis, accented letters all work. The decoder handles UTF-8 automatically - no manual byte handling needed.