URL Query String Parser

Turn a=1&b=2 or a leading question mark into separate name and value rows. Plus signs and percent-encoded spaces both become spaces.

Last updated: October 5, 2026

Tool

This tool will load here.

What this tool does

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.

How to use

  1. Paste the query string. Include the leading question mark or leave it off.
  2. Choose Parse, or press Enter in the field.
  3. Read the name and value rows. Copy writes one 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.

Example

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.

Limits

  • Query strings only. Full URLs belong on the URL Parser.
  • Plus and %20 both decode to a space.
  • Malformed percent sequences are errors.
  • 8,000 characters. Nothing is stored or sent.

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.

On this page

Related Articles

Related guides

Related solutions

Need another tool ?

Open the free tools — no signup.

FAQs

newsletter signup

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Innovative Solutions For Modern Needs
Copyright © 2026 Yallasolve. all rights reserved.