Paste plain text on the left to URL-encode, or an encoded string on the right to decode.
How it works
Encoding runs your text through the browser's built-in encodeURIComponent, which percent-escapes every character reserved in a URL (including /, :, &, and spaces); decoding runs decodeURIComponent in reverse, catching the error it throws on malformed percent-sequences instead of returning garbled text.
FAQ
Why does encoding change slashes and colons in a full URL, not just the query string?
Because it runs the whole input through encodeURIComponent, which escapes every reserved character including slashes and colons — encode just a value like a single query parameter, not a full https:// URL, if you need the structure to stay intact.
What happens if I click Decode on text that isn't validly encoded?
It shows an 'Invalid encoded string' message instead of garbled output — decodeURIComponent throws on malformed percent-sequences, like a lone % not followed by two hex digits, and that error is caught rather than silently producing wrong text.
Free, unlimited, no account. If this saved you a paid tool, a small thanks is appreciated.