How to use it
- Paste the text or the link into Text or URL.
- Choose Encode or Decode in Action.
- For one value, such as a search word, keep Scope on One value. For a whole link, choose A whole URL.
- Read the Result, and the Query parameters table when the text is a link with a query.
What percent-encoding does
A web address may contain only a small set of characters. Every other character is written as a % sign and two hexadecimal digits for each byte of its UTF-8 form. The Turkish letter ç therefore becomes %C3%A7, and a space becomes %20. The rules are in RFC 3986, section 2.1.
ç → UTF-8 bytes C3 A7 → %C3%A7
- Encoding with One value keeps only the letters A to Z and a to z, the digits 0 to 9 and - _ . ! ~ * ' ( ) as they are.
- Decoding turns every valid %XX back into its byte, and the bytes back into the letters they form.
One value or a whole URL
One value escapes the separators too (: / ? # & = and +), so a query value cannot break the structure of the address. A whole URL leaves those separators alone, so the link keeps its shape. When decoding a whole URL, an escape that stands for a separator, such as %2F, stays escaped, so the link still means the same thing.
Form encoding and the + sign
HTML forms write a space as + and a plus sign as %2B. In a query string written by a form, a + therefore means a space. The option Form encoding reads and writes that rule. When it is off, a + stays a plus sign, as RFC 3986 says.
What decoding refuses
- A % sign that is not followed by two hexadecimal digits, such as the end of %E0%A4%A.
- Escapes that do not form valid UTF-8, such as a single byte %FF.
- A broken character, such as half of an emoji, which cannot be encoded.
Worked example: a search link
Encoding the value Ankara & İzmir? with One value gives Ankara%20%26%20%C4%B0zmir%3F. The space, the ampersand, the capital İ (two bytes in UTF-8) and the question mark are all escaped.
Decoding https://example.com/ara?q=%C3%A7ay+kahve&page=2 with A whole URL and Form encoding ticked gives https://example.com/ara?q=çay kahve&page=2. The query has two parameters: q is çay kahve and page is 2.
| Input | Result |
|---|---|
| Ankara & İzmir? (One value, encode) | Ankara%20%26%20%C4%B0zmir%3F |
| https://example.com/ara?q=%C3%A7ay+kahve&page=2 (decode) | https://example.com/ara?q=çay kahve&page=2 |
Frequently asked questions
What is the difference between encodeURI and encodeURIComponent?
encodeURIComponent escapes every separator, so it suits one value of a query string. encodeURI keeps the characters that give a URL its structure, such as : / ? # & and =, so it suits a whole link. One value is the first and A whole URL the second.
Why does a space become %20 in one place and + in another?
%20 is the standard escape of a space and is valid anywhere in a URL. A + means a space only in form encoding, in query strings written by HTML forms. Tick Form encoding when the link comes from a form.
Why is %E0%A4%A refused?
The escape %E0 starts a three-byte letter, but the text ends after %A and the escape is not complete. Every % sign needs two hexadecimal digits, and each byte must belong to a complete UTF-8 character.
Is my link sent to a server?
No. Your browser does the encoding and the decoding, so links that carry tokens or private data stay on your device.
Why does a plus sign stay in my decoded parameters?
With Form encoding off, a + stays a plus sign, as RFC 3986 defines it. Many web forms write spaces as +, so tick the option to read those links as the form meant them.
Sources
- RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, section 2.1 (IETF)
- ECMA-262: encodeURI, encodeURIComponent and decodeURI in the ECMAScript specification
- WHATWG URL Standard: application/x-www-form-urlencoded parsing
Figures and text last checked on Tuesday, November 10, 2026.