URL Encoder / Decoder
Encode or decode percent-encoding and split any query string into readable parameters.
Runs entirely in your browser — URLs and parameters are never sent anywhere.
How it works
Double-encoding is the classic URL bug: a value gets encoded once by your code and again by a framework, turning %20 into %2520. Decoding here one step at a time makes that easy to spot. The query parser splits any URL or bare query string into decoded key–value rows, keeping repeated keys as separate entries — the same way servers see them.
FAQ
What's the difference between the two encode modes?
Component mode (encodeURIComponent) encodes everything that could break a parameter value — including /, ?, &, and =. Full-URL mode (encodeURI) leaves URL structure characters intact so a whole URL stays clickable. Use component mode for values you're putting into a query string; full mode to clean up a complete URL.
Why does + mean space?
An old convention from HTML form submissions (application/x-www-form-urlencoded) encodes spaces as +. Modern percent-encoding uses %20. This decoder accepts both, treating + as a space the way servers do for query strings.
Why did decoding fail?
A % in the input must be followed by two hex digits. 'Malformed percent-encoding' usually means the text was already decoded, was truncated, or contains a literal % (like '50% off') that was never encoded.