URL Encoder, Decoder & Query Parser
Percent-encode or decode URLs and query strings, switch between encodeURIComponent and encodeURI behaviour, and break any URL into editable query parameters.
Query string parser
About the URL Encoder & Decoder
Updated June 2026 · 100% client-side — your data never leaves your browser.
URLs may only contain a limited set of characters, so spaces, ampersands, question marks and non-ASCII characters must be percent-encoded (for example a space becomes %20). Bytewrench's URL encoder converts text and query parameters to percent-encoded form and decodes them back to readable text.
It mirrors the behaviour of JavaScript's encodeURIComponent/decodeURIComponent, making it perfect for building query strings, debugging redirects and inspecting API requests.
See also: HTML entity encoder, Base64 encoder & decoder
Percent-encode any string or decode an encoded URL back to plain text.
Safely encode parameter values for use in URLs and API calls.
Handles UTF-8 characters so international text encodes correctly.
All encoding happens in your browser with nothing sent to a server.
Frequently asked questions
Which characters need URL encoding?
Anything outside the unreserved set (A-Z, a-z, 0-9 and - _ . ~) should be encoded inside a value. In practice that means spaces, &, ?, =, #, /, +, % and all non-ASCII characters, because those have special meaning in a URL or aren't allowed at all.
What is %20?
%20 is the percent-encoded form of a space character (hex 20). You'll also see spaces encoded as '+' inside the query string of form submissions, but %20 is valid everywhere in a URL.
What's the difference between encodeURI and encodeURIComponent?
encodeURIComponent encodes more characters and is meant for individual parameter values, so it escapes &, =, ? and /. encodeURI is for a whole URL and deliberately leaves those structural characters intact. Use component-style encoding (what this tool does) for query-string values.
How do I encode a query string?
Encode each parameter value separately, then join them with '&' and pair them to keys with '='. For example value 'a b&c' becomes 'a%20b%26c'. Encoding the whole string at once would wrongly escape the '&' and '=' separators.
Is the data uploaded anywhere?
No. Encoding and decoding run entirely in your browser.