Percent-encode or decode URLs, query values and text — instantly in your browser.
URL encoding replaces unsafe characters with a % and two hexadecimal digits so they can travel safely in a web address. “hello world & more” becomes hello%20world%20%26%20more; a space is %20 and an ampersand is %26.
URLs may only contain a limited set of characters. Spaces, symbols and non-English letters must be percent-encoded — written as % followed by the byte's hexadecimal value in UTF-8. This tool encodes and decodes as you type, with three modes: encode a single value or query parameter, encode a whole URL while keeping its structure, and decode.
Developers, marketers and SEO professionals use it to build query strings, debug tracking links, read encoded URLs in analytics and handle Hindi or other non-Latin text in addresses. For binary-safe text encoding see the Base64 Encode / Decode.
The browser's built-in functions do the work, so results match what browsers and JavaScript produce.
| Function | Leaves unencoded | Use for |
|---|---|---|
| encodeURIComponent | A–Z a–z 0–9 - _ . ! ~ * ' ( ) | A single value, such as a query parameter |
| encodeURI | Everything above plus ; , / ? : @ & = + $ # | A complete URL |
| Character | Encoded | Character | Encoded |
|---|---|---|---|
| space | %20 (or + in forms) | / | %2F |
| ! | %21 | ? | %3F |
| # | %23 | @ | %40 |
| $ | %24 | & | %26 |
| % | %25 | = | %3D |
| + | %2B | : | %3A |
| , | %2C | ; | %3B |
| é | %C3%A9 | ह | %E0%A4%B9 |
Use component mode for anything you put inside a URL — a search term, a redirect address or a tracking value. Use whole-URL mode to clean up a full address that contains spaces or non-English characters. Never encode an already-encoded string twice, or %20 becomes %2520.
A way of writing unsafe characters in a URL as % plus two hexadecimal digits, so the address is valid and unambiguous.
Paste the text, choose an encoding mode and the encoded result appears immediately.
encodeURI keeps characters that structure a URL (: / ? # & =); encodeURIComponent encodes them too, which is right for a single value.
The encoding of a space. In form data a space is sometimes written as +.
Choose the decode mode and paste the encoded text. Tick “+ as space” for form-encoded strings.
The text has a % that is not followed by two hex digits, or the bytes are not valid UTF-8.
Yes. Text is encoded as UTF-8, so Hindi, Arabic, Chinese and emoji work.
Encoding an already-encoded string, which turns %20 into %2520. Decode once before encoding again.
No. It is a reversible formatting step with no secrecy.
No. Everything runs in your browser.