Encode or decode URLs, query strings, and parameters — instantly, in your browser.
This free online tool converts text to and from percent-encoding (URL encoding) — the format used for query parameters, form data, and special characters inside a URL. Type or paste your text, pick Encode or Decode, and get the result immediately as you type.
/, ?, and & (for encoding an entire URL).
Component encoding (JavaScript's encodeURIComponent) escapes every character that isn't
safe in a single query string value, including /, ?, &,
and = — use this when encoding a value you're about to insert into a URL. Full URL
encoding (encodeURI) leaves those structural characters alone, since encoding them
would break the URL itself — use this when encoding an already-complete URL that just has spaces
or other unsafe characters in it.
All encoding and decoding happens entirely in your browser using JavaScript. Nothing you type is ever sent to a server.
URL/percent-encoding has a few subtleties that trip people up. Here's what each option on this page actually does.
Any character outside the small set of "unreserved" characters (letters, digits, - _ . ~) is replaced with a %XX sequence representing its byte value — spaces become %20, for example.
Component encoding (default) also escapes / ? # [ ] @ ! $ & ' ( ) * + , ; =, since those are only safe as structural URL characters, not inside a single value. Enable "full URL" mode to leave them untouched.
+ as SpaceSome legacy form encodings use + for spaces instead of %20. Decode mode converts + to a space before percent-decoding, matching how browsers handle application/x-www-form-urlencoded data.
If the decoded text contains a malformed % sequence (not followed by two valid hex digits), the tool shows an inline error instead of crashing or silently producing garbage output.
Encode query parameter values before building request URLs by hand, or decode a captured request to see what was actually sent.
Debug redirect URLs, deep links, and share URLs that carry encoded parameters — decode them to read the real values.
Quickly decode a URL pasted from a bug report or support ticket to understand exactly what a user's browser sent.
See exactly which characters get encoded and why, while learning how URLs and query strings are structured.
URL encoding (percent-encoding) replaces characters that aren't safe inside a URL with a % followed by two hexadecimal digits representing the character's byte value, so text with spaces or symbols can be safely included in a URL.
Use component encoding (default, checkbox off) when encoding a single value that will go inside a URL, like a query parameter. Use full URL encoding (checkbox on) when you already have a complete URL and just need to escape unsafe characters like spaces without breaking its structure.
Decoding fails when the input contains a malformed % sequence — for example, a % not followed by two valid hex digits. This usually means the input wasn't fully URL-encoded, or was double-encoded incorrectly.
Yes. Non-ASCII characters are encoded as their UTF-8 byte sequences (each byte as a %XX triplet), matching how browsers and encodeURIComponent handle Unicode text.
No. All encoding and decoding happens locally in your browser with JavaScript. Nothing is sent to a server.
Built by Deepak Kumar — a developer who wanted a JSON tool that respects your privacy. All processing happens in your browser. Your data never leaves your device.