What URL encoding is
A URL may only carry a small set of ASCII characters. RFC 3986, the standard for web addresses, lets letters, digits and - . _ ~ through as they are and gives characters like / ? # & = a structural meaning. Everything else, including a space and every Arabic letter, is written as its UTF-8 bytes, each byte as % followed by two hexadecimal digits. A space becomes %20. The Arabic letter د is two bytes in UTF-8, so it becomes %D8%AF, six characters for one letter. Decoding reverses that. Browsers do it for you in the address bar, which is why an Arabic link looks normal there but turns into a long %D8 string when you paste it into an email, a spreadsheet or a chat app.
encodeURIComponent or encodeURI: which one to use
The two modes match the two JavaScript functions developers use. One value works like encodeURIComponent: it also encodes / ? # & = + , ; : @ and $, because inside a value those characters would break the address. Use it for a search term, a single query value, a path segment, or a whole link you are passing as the value of another link, such as a redirect or share URL. Full URL works like encodeURI: it leaves those structural characters alone so the address keeps working, and only encodes spaces, Arabic and other non-ASCII text and a few unsafe symbols. If you run a full address through One value, its slashes become %2F and it stops being a link; if you run a value containing & through Full URL, the & will split it into two parameters.
- One value example: a b&c becomes a%20b%26c
- Full URL example: https://example.com/a b?x=1&y=2 becomes https://example.com/a%20b?x=1&y=2
- Form style: tick “Write spaces as +” to get a+b%26c, the format HTML forms send
Arabic URLs and Arabic domain names
An Arabic path or query is encoded byte by byte, and the side-by-side table shows both forms with their lengths, so you can see that a 20-letter Arabic slug becomes about 120 characters on the wire. Domain names work differently: they are not percent-encoded at all. An Arabic domain is converted to punycode, an ASCII form that starts with xn--, which is what DNS actually looks up. Full URL mode does that conversion for you using the browser's own URL engine, and Decode shows an xn-- domain in Arabic again, so you can check which address a punycode link really points to.
Broken links, double encoding and bulk lists
The browser's own decoder stops with an error at the first bad sequence, such as a % sign followed by letters that are not hexadecimal, or bytes cut in the middle of an Arabic letter. This tool keeps going: it decodes the rest of the line, keeps the broken part exactly as typed, and lists each problem with its line and character position. It also spots double encoding, where %25 (an encoded % sign) shows a link was encoded twice, and can decode it until it is clean. In bulk mode each line is handled on its own, and the CSV export puts the readable form, the encoded form, its length and any problems in separate columns.