A space in a link, a query string buried under %20 noise, an OAuth callback you cannot read at a glance — this url encoder and decoder untangles all of it in one paste. It percent-encodes text four different ways (single query value, whole URL, HTML form body, or strict RFC 3986) and decodes any of them straight back to readable text. Everything runs in your browser, so nothing you paste ever leaves your machine.
What This URL Encoder and Decoder Does
- 🔀 Four encoding modes — Component, Full URL, Form, and strict RFC 3986 — so this url encoder and decoder produces exactly the escaping the receiving system expects, not a one-size-fits-all guess
- ↩️ Decoding that tells you what went wrong — a stray
%or a truncated escape gets a plain-English message with the character position, instead of a silent failure - ➕ A
+means space toggle — form-encoded query strings and standard URLs disagree about+, and you choose which reading applies - 🔗 A URL inspector — paste any link and see scheme, user info, host, port, path, query, and fragment split apart, with decoded values shown under the raw ones
- ✏️ Editable query parameters — change, add, or delete any parameter in a decoded table and the rebuilt URL updates instantly, correctly re-escaped
- 🌐 Full UTF-8 support — Cyrillic, CJK, and emoji all encode to correct multi-byte escapes and survive a round trip unchanged
How to Use It
Whether you are debugging a webhook or building a search link by hand, the url encoder and decoder gets you a usable result without leaving the page:
- Pick a direction — Encode or Decode — with the switch at the top.
- Choose a mode: Component for one query value, Full URL to keep a whole link working, Form for form bodies, RFC 3986 when a signature depends on it.
- Paste your text — the output updates as you type, with a character count and a size-change percentage.
- Hit ⇅ Swap to push the result back into the input and flip direction, which is the fastest way to sanity-check a round trip.
- Switch to the URL inspector tab and paste a full link to see it broken into components.
- Edit any query parameter in the decoded table, then copy the rebuilt URL with the 📋 button.
Four Modes, and Why Picking the Wrong One Breaks Things
Most bugs blamed on “broken encoding” are really one function applied in the wrong place. encodeURIComponent() escapes /, ?, & and =, which is exactly right for a single value and exactly wrong for a whole URL — run a full link through it and every delimiter turns into an escape, leaving a string no server will route. encodeURI() has the opposite problem: it leaves those delimiters alone, so a value containing & silently splits into two parameters.
The other classic trap is +. In an application/x-www-form-urlencoded body, + means a space. In a path or a normal URL, + is a literal plus sign. Decode a query string with the wrong assumption and C++ becomes C , or a real space turns into a stray +. That is why this url encoder and decoder gives you an explicit toggle instead of quietly picking for you.
The strict RFC 3986 mode exists for a narrower but unforgiving case: signed requests. AWS S3 pre-signed URLs, OAuth 1.0a signature base strings, and similar schemes hash the encoded value, so escaping ! or * differently from the server changes the signature and the request is rejected. Strict mode keeps only the unreserved set — A-Z a-z 0-9 - _ . ~ — and escapes everything else, which is what those specifications require. Switching modes in the url encoder and decoder re-runs the conversion instantly, so you can compare all four outputs against the same input in a few seconds.
Practical Use Cases
Here is where a url encoder and decoder actually earns its place in a homelab or development workflow:
- 🤖 Bot and webhook APIs — Telegram, Discord, and friends take message text as a query parameter, so a single unescaped
&truncates your message. Useful when wiring up something like Telegram notifications for finished torrents. - 🗺 Hand-built API queries — endpoints that take a whole query language in one parameter, like the self-hosted Overpass API, are unusable until the payload is properly escaped.
- 🔐 Reading OAuth and SSO callbacks — drop the callback URL into the url encoder and decoder’s inspector and read the
redirect_uri,state, andscopevalues as plain text instead of squinting at escapes. - 🧹 Cleaning tracking junk out of links — paste a URL, delete the
utm_*rows in the parameter table, and let the url encoder and decoder hand back a short, clean link. - 🐛 Debugging reverse-proxy rules — encoded slashes and escaped paths behave differently across proxies; seeing the decoded path segments makes a misrouted request obvious. Pairs well with the Regex Tester Tool when the rule itself is a pattern.
Privacy, Ads, and Data Policy
- ✅ 100% free — no registration, no account, no paywall.
- ✅ No data storage — every URL, token, and query string you paste into this url encoder and decoder stays in your browser tab and is never sent to a server.
- ✅ No ads in results — no watermarks, no tracking pixels, no upsells.
- ✅ Client-side only — no external API calls and no CDN dependency for this tool.
Open Source and Self-Hosting
This url encoder and decoder is part of the open-source vahac-tools repository on GitHub — a single-folder, dependency-free build you are welcome to fork, self-host, or adapt. The percent-encoding is implemented from scratch against RFC 3986 and covered by a unit-test suite, so each mode does exactly what it claims. Browse the rest of the collection on the Tools page, including the JSON Formatter and Validator for the API responses these URLs return, and the YAML JSON TOML Converter for the config files they end up in.
Built by VahaC — 100% client-side, no data sent anywhere.
