How to use
- Paste the text or URL into the input box.
- Choose Component for a single value such as a query parameter, or Full URL to keep the URL structure intact.
- Press Encode or Decode and copy the result.
Examples
a b&c=d/é
→ a%20b%26c%3Dd%2F%C3%A9Encode in Component mode. Every reserved character is escaped.
https://x.com/a b?q=é
→ https://x.com/a%20b?q=%C3%A9Encode in Full URL mode. The : / ? and = characters stay as they are.
a%20b%26c
→ a b&cDecode.
How it works
A URL can only contain a limited set of characters. Everything else, including spaces and non-English letters, is written as a percent sign followed by the two-digit hexadecimal value of each UTF-8 byte. This is called percent-encoding.
The tool uses the browser’s standard functions: encodeURIComponent and decodeURIComponent in Component mode, encodeURI and decodeURI in Full URL mode. These follow the rules of RFC 3986.
Encode only the part you need. Running Component mode on a whole URL also escapes the : and / characters, which makes the address unusable; for a whole address use Full URL mode, and for each parameter value use Component mode.
Sources
Frequently asked questions
- What is the difference between Component and Full URL mode?
- Component mode (encodeURIComponent) escapes everything except letters, digits and - _ . ! ~ * ' ( ), so it is right for one value, like a search term. Full URL mode (encodeURI) also leaves characters that give a URL its structure, such as : / ? # & = and @, so a whole address stays usable.
- Why does a space become %20 and not +?
- Percent-encoding writes a space as %20. The + form is only used in HTML form data (application/x-www-form-urlencoded), which this tool does not produce.
- Why does decoding fail with a malformed % sequence?
- A % must be followed by two hexadecimal digits, and the bytes must form valid UTF-8. Text such as %E0%A4%A is cut off in the middle of a character, so it cannot be decoded.
- How are non-English characters encoded?
- They are converted to UTF-8 bytes, and each byte is written as %XX. For example é becomes %C3%A9.
- Is my text uploaded?
- No. Encoding and decoding run in your browser and the text is never sent to a server.