Input
Output

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

%
Encode & decode

Percent-encode any string or decode an encoded URL back to plain text.

🔗
Query-string friendly

Safely encode parameter values for use in URLs and API calls.

🌐
Unicode aware

Handles UTF-8 characters so international text encodes correctly.

🔒
Runs locally

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.