This query string parser reads a bare query or a form-urlencoded string and lists each name with its decoded value. The work is URLSearchParams. A leading ? is accepted and removed by that constructor. The rest of the string is the parameter list.
A plus sign becomes a space. A percent-encoded space, written as %20, also becomes a space. Those are two spellings of the same form-encoding rule. They are not the same rule as encodeURIComponent, which writes a space only as %20 and writes a literal plus as %2B. The URL Encoder / Decoder is that component encoder. This page is the reader for a string that was already joined with &.
Duplicate names stay on separate rows, in the order they appear. a=1&a=2 is two rows, not one value with a comma. An empty value is a real row: a= and a bare a both show the name with an empty value. Values are written as text. A value that looks like a tag is not inserted as HTML.
This is not a second URL parser. If the paste starts with a scheme, starts with //, or contains ://, the page rejects it and names the URL Parser. That tool requires an absolute URL and will not guess https. A query value that itself contains a raw URL also trips the :// check. Percent-encode that value, or parse the absolute URL on the other page. This page does not invent a base and does not fetch anything.
name=value line per row. Clear empties the field and the table.Empty input is an error. A string of only ? has no parameters and is an error. A percent sign that is not followed by two hex digits is an error, and the table is cleared so an older success does not remain.
a=1&b=2 and ?a=1&b=2 produce the same two rows. q=hello+world and q=hello%20world both produce the value hello world. tag=%3Cscript%3E produces the characters <script> as text in the value cell, not as an element. q=%ZZ stops with a malformed percent-encoding error. https://example.com/search?q=cat is rejected because it is a full URL.
a=1&b=hello+world&a=2
That sample is three rows: a is 1, b is hello world, and a is 2 again. The repeated name is the point of keeping rows separate.
%20 both decode to a space.The page does not build a URL, choose a scheme, or apply encodeURI. Encoding a component and joining it with raw & and = is a step you do before you paste here. Decoding a component that is not yet joined is the encoder page. Reading the joined form is this one.
Copy uses the clipboard when the browser allows it. If it does not, the status tells you to copy the table yourself. Clear drops the paste and the rows from the page. There is no history.
Parses a query or form-style string with URLSearchParams. A leading ? is accepted. + and %20 both become spaces. Duplicate names stay on their own rows. A full URL is rejected: use the URL Parser for that. Nothing is fetched. Limit: 8,000 characters.
Yes. URLSearchParams treats a plus as a space, and it also decodes a percent-encoded space to a space. The URL encoder does not write plus signs for spaces.
No. A scheme or a :// is rejected. Open the URL Parser for an absolute URL. This page will not invent https.
Each occurrence stays on its own row, in order. The names are not merged.
No. A percent sign that is not followed by two hexadecimal digits is an error, and the previous rows are cleared.