URL Encoder / Decoder
Encode or decode URLs and query parameters. Pick component-level (safe for ?key=value) or full-URI (preserves / ? &). Free, in your browser.
Plain text or URL
Encoded
URL parts
Scheme
httpsHost
snaptxt.appPath
/regex-tester/Query parameters
| Key | Value (decoded) |
|---|---|
| q | hello world |
| utm_source | demo |
Your URLs stay on your device.
Encoding, decoding, and parsing all happen in your browser via the standard URL API. Nothing is sent to a server.
How to use it
- 1Pick a direction — Encode or Decode.
- 2Pick a scope — Component (for a value inside ?key=value, escapes reserved chars too) or Full URI (for a whole URL, keeps / ? & = intact).
- 3Paste your input on the left. The encoded or decoded result appears on the right and updates as you type.
- 4If your input is a complete URL, the page also breaks it down into scheme, host, path, and a table of decoded query parameters.
- 5Use Swap to move the result back into the input and flip the direction — handy for round-trip checks.
Common use cases
- Decode a long URL someone pasted in chat or email to see what query parameters it actually carries.
- Encode a search string with spaces or special characters before stuffing it into a query parameter.
- Inspect tracking parameters (utm_source, gclid, fbclid) on a marketing link.
- Build a deep link by URL-encoding the destination path you want to pass as a value.
- Convert between component-level encoding (the safe default for values) and full-URI encoding (for whole URLs).
Frequently asked questions
- What's the difference between Component and Full URI?
- Component uses encodeURIComponent / decodeURIComponent — it escapes reserved characters like / ? & = # so the result is safe to drop into a query parameter value. Full URI uses encodeURI / decodeURI — it leaves those reserved characters alone, so a whole URL stays parseable. If unsure, pick Component for a value, Full URI for a whole URL.
- Why is + decoded as a space sometimes but not others?
- Percent-encoding strictly uses %20 for spaces. The + form is a legacy convention from application/x-www-form-urlencoded (HTML form submissions). The decode functions here follow the percent-encoding spec, so + stays as +. If you need form-style decoding, replace + with %20 before decoding.
- Is my input sent anywhere?
- No. Encoding, decoding, and URL parsing run entirely in your browser using the built-in URL and encodeURIComponent APIs.
- Why does the URL parts breakdown sometimes disappear?
- It only renders when the input parses as an absolute URL — that means a scheme (https://, mailto:, etc.) is present. Strings without a scheme can't be unambiguously parsed, so the breakdown hides itself rather than guess.
- Can it handle international (Unicode) URLs?
- Yes. Modern browsers' URL parser handles IDN hostnames and Unicode characters in paths and queries. The encoders produce percent-encoded UTF-8, which every server understands.
Try next
Base64 Encode / Decode
Encode and decode text and files to and from Base64.
Regex Tester
Test JavaScript regular expressions with live highlighting and a capture-group inspector — plus an AI regex generator that turns plain-English descriptions into regex (on-device Gemini Nano).
Meta Tag & OG Preview Generator
Generate and preview Open Graph, X Card, and standard HTML meta tags for your web pages — instantly in your browser.