URLs cannot carry certain characters as-is — spaces, non-Latin letters, and many special symbols. URL encoding replaces those characters with percent-encoded sequences like %20. Each character is converted to its UTF-8 bytes, and every byte is written as a percent sign followed by two hexadecimal digits, so a single non-Latin character is often expressed as three groups such as %EA%B0%80. This tool converts strings both ways using encodeURIComponent and decodeURIComponent, and neatly breaks the query string after the question mark into a table of keys and values.
The query string parser uses the standard URLSearchParams. It slices the input from the part after the ?, splits it on &, and automatically decodes each parameter's key and value before showing them in a table. Repeated keys and empty values are all shown as rows too, which is especially handy when analyzing a link weighed down by complex tracking parameters.
It is useful when building a link that contains a search term, turning an encoded URL from your logs back into something a human can read, or checking the parameters of an API call. Every operation runs in your browser, so even URLs containing tokens or internal addresses are safe to paste in.
How to Use
- 1
Enter a string
Type in the text to encode, the encoded string to decode, or the full URL / query string you want to analyze.
- 2
Pick an action
'Encode' turns special characters into percent notation; 'Decode' turns percent notation back into the original characters.
- 3
Parse the query string
Enter a URL or query string and press 'Parse query string' — each parameter is automatically decoded into a key and value and shown in a table.
- 4
Copy the result
Use the copy button to put the converted result on your clipboard.
When It's Useful
Build a link with a search term
Encode a search term that contains spaces or non-Latin letters so it slots safely into a query parameter value.
Decode an encoded URL from logs
Decode a URL littered with % symbols in your server logs or referrer to see the real address and search term.
Break down tracking parameters
Parse a link loaded with marketing parameters such as utm_source to inspect which keys and values it carries, in a table.
Verify API request parameters
When an API call fails, parse the query string to confirm the values were encoded and passed as intended.
Tips
- encodeURIComponent also encodes delimiters like ?, &, and =, so it is best suited to encoding a single value. Encoding a whole URL can break its structure, so be careful.
- If the input contains a ?, the query string parser automatically slices from the part after it.
- A query string with the same key appearing several times shows every occurrence as its own row.
- If decoding fails, there may be an invalid hex sequence after a %, or the encoding may have been applied twice (for example %2520).
- Encoding an already-encoded string again turns % into %25, double-encoding it. You can recover the original by decoding once more.
- The query string parser shows decoded values, so you can read each parameter's original value right away without pressing the decode button separately.
FAQ
What is the difference between encodeURI and encodeURIComponent?
encodeURI targets a whole URL and leaves delimiters (:/?&=) intact, while encodeURIComponent encodes those characters too. This tool uses encodeURIComponent, which is well suited to handling a single value.
Is the URL I enter sent to a server?
No. All encoding, decoding, and parsing run only in your browser and nothing is sent anywhere.
Are non-Latin search terms encoded too?
Yes. Non-Latin characters are percent-encoded based on their UTF-8 bytes, and decoding restores the original characters exactly.
Are spaces encoded as +?
In encodeURIComponent, a space is encoded as %20. The + is a separate rule used mainly in application/x-www-form-urlencoded form submissions.
Are keys with no value parsed in a query string?
Yes. The key is shown in the table even when its value is an empty string.
Does the query string parser decode values automatically?
Yes. Because it uses the URLSearchParams standard, each parameter's key and value are automatically percent-decoded into a human-readable form in the table.
Why are the characters garbled after I decode?
A string originally created in a non-UTF-8 encoding (for example EUC-KR) can come out garbled under UTF-8 decoding. This tool uses standard UTF-8 decoding.
Can I encode a whole URL at once?
It is not recommended. Encoding a whole URL with encodeURIComponent also converts structural characters like :// and ?, which breaks the link. Apply encoding per parameter value instead.