What is a URL made of, and what does URL encoding do?
A URL has a scheme, an authority (host and port), a path, an optional query string of key=value pairs and an optional fragment (RFC 3986). Characters that have a meaning inside a URL — spaces, &, =, /, ? and anything outside ASCII — must be percent-encoded (a space becomes %20) so the receiver can tell data from structure. Browsers follow the WHATWG URL Standard when they parse and serialize URLs.
How to use URL Decoder
- Paste the encoded text, URL or query string.
- Turn on "Decode repeatedly" if the result still contains %XX.
- Review the query parameter table.
- Copy the decoded text.
URL Decoder features
- Decodes %XX sequences with UTF-8 (Latin-1 fallback for invalid bytes)
- Optional + → space conversion and repeated decoding for double-encoded input
- Lists malformed sequences with their positions instead of failing
- Parses query strings into a parameter table
- Detects double encoding and reports the number of passes
URL Decoder example
Decode a redirect parameter
Input:
redirect=https%3A%2F%2Fapp.example.com%2Fhome%3Ftab%3D1Output:
redirect=https://app.example.com/home?tab=1Frequently asked questions about URL Decoder
What is double encoding?
Encoding an already-encoded value, so "%20" becomes "%2520". It happens when a URL is built from parts that were encoded separately. Enable "Decode repeatedly" to unwrap every layer; the tool also tells you when it detects it.
Why is a "%" left in the output?
A "%" that is not followed by two hex digits (for example "100%" or "%GZ") is malformed. JavaScript's decodeURIComponent would throw; this tool keeps the text as-is and lists the position so you can fix it.
Should "+" become a space?
Only in query strings and form bodies. Turn the option off when decoding a path, where "+" is a literal plus sign.
Why does the table of query parameters appear?
When the input contains "key=value" pairs, they are split on "&" and each key and value is decoded separately so you can read every parameter at a glance.
Technical notes
Consecutive %XX bytes are collected and decoded together as UTF-8, so multi-byte characters such as %D8%A7 (Arabic alef) come out correctly. Sequences that are not valid UTF-8 are decoded byte-by-byte as Latin-1 and flagged, and a "%" without two hex digits is preserved verbatim rather than throwing a URIError.
References
- RFC 3986: Uniform Resource Identifier (URI): Generic SyntaxThe parts of a URI (scheme, authority, path, query, fragment), reserved characters and percent-encoding.
- URL StandardHow browsers actually parse, serialize and encode URLs, including application/x-www-form-urlencoded.