Query String Parser

Run parsing, conversion, and validation in your browser. No input is sent to a server. Use it for first-pass format troubleshooting.

Status

Runs in your browser. No input is sent to a server. Use this as a first-pass diagnostic step.

How to use

Paste a URL or query string and click “Parse”. Toggle “Treat + as space” when needed and compare results.

Notes (this tool)

  • If you paste a full URL, only the query part after ? is parsed. Fragments (#...) are ignored.
  • Duplicate-key resolution (first/last/array) depends on server implementation.

About this page

What does this tool do?

Parse a URL or query string (after “?”) and list keys and values.

It also handles duplicate keys (e.g., a=1&a=2) and encoded values.

The general explanation of URL encoding lives on URL Encode/Decode. This page focuses on query-string pitfalls (+ vs %20, duplicate keys, double-encoding).

+ vs %20 (space issue)

In some query-string contexts (e.g., application/x-www-form-urlencoded), “+” may be treated as a space, while %20 is a percent-encoded space.

This tool lets you compare both interpretations via the “Treat + as space” option.

Duplicate keys (a=1&a=2)

Query strings can contain the same key multiple times (checkboxes, array-style params, etc.). Server-side interpretation (first/last/array) depends on frameworks—be careful.

Debugging workflow (recommended)

  • Paste the raw URL first and inspect listed keys
  • If values look wrong, toggle + as space and parse again
  • Check repeated keys and compare with backend interpretation rules
  • Use URL Encode/Decode step-by-step to verify double-encoding

Recommendations (practical)

  • Document duplicate-key handling (array/first/last) explicitly in API specs
  • Always encode each value when delimiters can appear inside it
  • Store both raw URL and decoded values in operational logs

Double-encoding (%2520, etc.)

  • %25 encodes “%”. %2520 is “%20” encoded one more time.
  • If you suspect it, decode step-by-step. Over-decoding can break data.

Common pitfalls

  • Concatenating full URLs twice creates multiple ? and unexpected parsing
  • Treating empty values (a=) and missing values (a) as identical
  • Ignoring decode failures and processing raw values delays bug detection

What this tool does

  • Parse URL/query strings
  • Show key/value/decoded value
  • Keep duplicate keys
  • Toggle interpretation of + as space

Operational notes

  • The same string can be interpreted differently by context. Prioritize destination specifications.
  • Watch for upstream auto-conversion such as spaces, line breaks, and URL decoding.

Referenced specs

  • RFC 3986 (URI)
  • WHATWG URL Standard (URLSearchParams / form-urlencoded)
  • application/x-www-form-urlencoded convention (plus as space)

FAQ

Is “+” treated as space?

This tool provides an option to treat “+” as space. Toggle it depending on your use case.

What if values contain “&” or “=”?

“&” and “=” are delimiters. Encode them if they are part of a value.

Are a= and a the same?

Handling can vary by implementation. It is safer to specify whether they are distinct in your API contract.

Which value wins for duplicate keys?

This tool preserves order in output. Final resolution depends on your server/framework (first/last/array).

References

  1. RFC 3986 (URI)
  2. WHATWG URL Standard
  3. URLSearchParams

These links are generated from site_map rules in recommended diagnostic order.

  1. UTM Builder — Build URLs with UTM parameters
  2. URL Encode/Decode — Convert URL encoding and decoding both ways
  3. Text Counter — Count characters including newline and full/half-width views
  4. Base64 — Encode/decode Base64 with UTF-8 handling

Example

https://example.com/?a=1&a=2&q=hello%20world
q=hello+world (+ as space)
q=%2520 (double-encoding)