Understanding URL Encoding and Percent-Encoding
What this tool does
A URL can only carry a limited set of characters safely. Anything outside the unreserved letters, digits, and a handful of symbols must be rewritten as percent-encoding — a % sign followed by the byte value in hexadecimal. This tool turns ordinary text into that encoded form, and it also runs the reverse, turning sequences like %20 and %26 back into the characters they stand for.
Three encoding modes cover the situations you actually meet. Standard encoding mirrors JavaScript's encodeURI and is meant for a whole URL, so structural characters like :, /, ?, and # are left intact. Component encoding mirrors encodeURIComponent and escapes those structural characters too, which is what you want for an isolated piece such as a parameter value. Form encoding follows the application/x-www-form-urlencoded rule a browser uses when it submits a form.
When to use it
Reach for component encoding whenever a value goes inside a query string — a search term, an email address, or a redirect target that itself contains ?, &, or =. Encoding it stops those symbols from being read as URL structure and breaking the link. Standard encoding suits a full address you are cleaning up, where spaces or accented letters slipped in but the slashes and question mark must keep their meaning. Form encoding matches the body of a POST request or a hand-built form payload, where spaces are written as + rather than %20. Decoding is just as common: pasting an encoded link from a log, an analytics report, or a redirect chain and reading where it actually points.
A concrete example
Take the text hello world & café. Under component encoding a space becomes %20, the ampersand becomes %26, and café — because é is stored as two UTF-8 bytes — becomes caf%C3%A9. Under form encoding that same space is written as +, giving hello+world. The live statistics show how many characters changed and what share of the string was encoded, which is a quick way to spot text that was already encoded once.
Notes and edge cases
Reserved characters (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) have meaning inside a URL, so Standard mode deliberately leaves them alone while Component mode escapes them; choosing the wrong mode is the usual cause of a broken query parameter. Encoding is defined over UTF-8 bytes, so any non-ASCII character expands into several %XX groups. Avoid encoding a URL twice — a stray % that is already part of an escape turns into %25 and the link stops resolving. When in doubt, decode first to check whether the text is raw or already escaped.