URL Encoder / Decoder
Encode/decode strings, edit query parameters in a table, or parse any URL into its components.
About the URL Encoder / Decoder
Three tools in one: Encode/Decode raw strings using encodeURIComponent /decodeURIComponent. Param Builder lets you construct query strings in a spreadsheet-like table with OAuth 2.0 presets for quick scaffolding. URL Parser breaks any absolute URL into protocol, origin, hostname, port, path, hash, and individual query parameters. Everything is 100% client-side.
About URL Encoder / Decoder
A percent-encoder for URLs and URL components. Paste raw text to encode it, or paste an encoded string to decode it back. The tool handles UTF-8 correctly, so non-ASCII characters round-trip through their byte sequences without corruption. Useful any time you need to put data into a URL — query parameters, path segments, fragments, or full URLs assembled from pieces.
What this tool does
- Encode — converts characters outside the unreserved set into
%XXpercent-escapes using UTF-8. - Decode — turns
%XXsequences back into the original characters, including multi-byte UTF-8. - Component vs full-URL mode — toggle between
encodeURIComponent(encodes everything reserved) andencodeURI(preserves URL structure). - Form-encoded variant — option to encode spaces as
+forapplication/x-www-form-urlencodedbodies.
When does URL encoding matter?
Any time a value containing reserved characters travels through a URL. A search term cats & dogs becomes cats%20%26%20dogs as a query parameter — without encoding, the unescaped & would be read as a parameter delimiter and the value would be cut off. The same applies to redirect URLs (the ?, #, and = in the target need encoding before being placed in a ?return= parameter), file names in download links (spaces, brackets, accented characters), and OAuth state parameters that carry JSON. If you're seeing a request truncated, parsed as the wrong path, or rejected with a 400, missing percent-encoding is usually the cause.
Pipeline
Output from this tool can be sent directly to:
- Base64 Encoder / Decoder — wrap binary or already-encoded text for transport in URLs that disallow percent characters.
- Query String Builder — assemble a full
?key=value&...string from parsed pairs once individual values are encoded.
Privacy
Everything runs in your browser. Nothing is sent to a server. Read our privacy policy.
Frequently asked
- What's the difference between encodeURI and encodeURIComponent?
- `encodeURI` is meant for whole URLs and leaves reserved characters like `:`, `/`, `?`, `#`, and `&` alone so the URL still parses. `encodeURIComponent` is meant for individual values inside a URL (a query parameter, a path segment) and percent-encodes those reserved characters too. Use `encodeURIComponent` for any value you build into a URL string. The decode side is symmetric: `decodeURI` and `decodeURIComponent`.
- What characters need encoding?
- Anything outside the unreserved set: A–Z, a–z, 0–9, and the four marks `-`, `_`, `.`, `~`. Reserved characters (`:`, `/`, `?`, `#`, `[`, `]`, `@`, `!`, `
Dev Toolkit — 55+ Free Client-Side Developer Utilities , `&`, `\'`, `(`, `)`, `*`, `+`, `,`, `;`, `=`) need encoding when they appear in data, not as URL syntax. Spaces become `%20` (or `+` in form-encoded query strings). Non-ASCII characters are encoded as their UTF-8 byte sequence — `é` becomes `%C3%A9`.- Is this the same as percent-encoding?
- Yes. URL encoding and percent-encoding are the same thing — RFC 3986 calls it percent-encoding because every encoded byte starts with `%`. The term 'URL encoding' is just the common name developers use. There's a closely related variant called `application/x-www-form-urlencoded` that encodes spaces as `+` instead of `%20`; it's used in HTML form submissions and query strings.