Skip to content

All tools (41)

JSON 6
Time & Date 4
Encoding & Decoding 4
Generators 3
Text & Data 4
Logs & Debugging 1
Config & Infra 3
Security & Hashing 4
Color & Design 5
Numbers & Bits 3
Web & Markup 4

Nothing leaves the cave.

Nothing you paste ever leaves your device. There is no server to send it to.

How you can check →
DevToolsCave

    This tool runs entirely in your browser. Nothing you paste is uploaded.

    How you can check →

    Paste 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.

    0 characters
    Paste a URL above to see it split into parts, with every query parameter decoded.

    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.