This tool runs entirely in your browser. Nothing you paste is uploaded.
How you can check →URL Parser
Encoding & DecodingPaste a URL, a query string, or a form body — get every part broken out, every parameter decoded (repeats included), and an editable table that rebuilds the URL as you change it.
Parts
Query parameters
| Key | Decoded value | Raw value | Actions |
|---|
No query parameters.
No network activity while you use this tool Show the numbers
- Requests to any other server
- 0
- Requests since you started typing
- —
- Same-origin requests
- 0
Counted live by your browser's own Performance Timeline — the same data the DevTools Network panel reads. It cannot see what a browser extension does, and it is not meant to replace checking for yourself: here is how, in thirty seconds .
The host is punycoded, not percent-encoded
A URL like https://münchen.de/straße?q=grüße&a=1&a=2#frag ment gets three
different treatments from the platform's own URL parser: the host becomes
punycode (xn--mnchen-3ya.de), the path and query become
percent-encoded UTF-8 (stra%C3%9Fe), and the space in the
fragment becomes %20. Running the whole string through
encodeURIComponent — a common mistake — destroys all three rules at once. This
tool uses the browser's own URL parser, so the host normalisation always matches what actually
goes out on the wire, and flags a Unicode host whose letters mix scripts (Latin and Cyrillic
look-alikes, for example) — the classic homoglyph phishing shape.
Repeated query keys, kept honest
?a=1&a=2 is legal and meaningful, and every server framework handles it
differently — PHP keeps the last value, Rails expects a[], Express returns
an array, and some CDNs drop one at the edge silently. Most parsers online render one row per
key and quietly lose a value. This one shows every occurrence, in source order, grouped and
marked as repeated — the same treatment the JSON
formatter gives duplicate object keys, applied to the same underlying problem in a
different format.
Bare keys, empty keys and empty values are different things
?flag (a bare key with no =), ?a= (an empty value) and
?=1 (an empty key) are three distinct, legal shapes, and this table shows each one
as it actually is instead of normalising them into the same row. The parameter table is also
editable: change a key or value, add or remove a row, and the URL above rebuilds itself —
the same table read backwards, rather than a separate query-string builder.
Common use cases
- Splitting a URL pasted from a browser's address bar or network tab into its parts
- Checking exactly what a query string sends when a key appears more than once
- Confirming a non-ASCII domain resolves to the punycode form a server actually receives
- Editing query parameters by hand and getting a clean, correctly encoded URL back out
- Pulling a full URL out of a pasted log line with the log extractor, then splitting it here
Want to see how a single character encodes across all four URL encoding modes? See the percent-encoding table. Encoding a value from scratch instead of parsing one? Use the URL encoder.
Frequently asked questions
- Why does the host look different from what I pasted?
- A non-ASCII host (like münchen.de) is converted to punycode (xn--mnchen-3ya.de) — that's the form that actually goes out on the wire. This tool shows both the punycode and the original Unicode form, and warns if the Unicode form mixes scripts (e.g. Latin and Cyrillic look-alikes), which is the classic homoglyph phishing shape.
- What happens to repeated query keys like ?a=1&a=2?
- Every occurrence is kept, in order, and grouped so you can see they share a key — never collapsed to the last value. Different frameworks handle repeated keys differently (arrays, last-wins, or dropped entirely), so seeing the raw list is the only honest answer.
- Can I edit the query parameters and get the URL back?
- Yes — the parameter table is editable. Change a key or value, add or remove a row, and the rebuilt URL appears above with its own copy button. That's a query-string builder using the same table, not a separate tool.
- What if I paste a URL with no scheme, like example.com/path?
- The browser's URL parser requires a scheme and rejects a bare host. This tool offers a one-click "assume https://" fix, and clearly marks the result as assumed rather than silently pretending you typed it.