Quick answer: A space becomes %20 and each Arabic letter becomes two %XX bytes, so “مرحبا” encodes to %D9%85%D8%B1%D8%AD%D8%A8%D8%A7.
How it's calculated
URLs may only contain a limited set of ASCII characters. Any other character is written as its UTF-8 bytes, each as % followed by two hexadecimal digits (RFC 3986). Arabic letters take two bytes, so each becomes something like %D9%85.
Choose “value” to encode a single query parameter or path segment: reserved characters such as & = ? / # are encoded too, so they cannot break the URL. Choose “full URL” to keep those characters and encode only spaces and non-ASCII text.
HTML forms encode spaces as “+”. When decoding form data, set “+” to mean a space.
Worked examples
- مرحبا → %D9%85%D8%B1%D8%AD%D8%A8%D8%A7
- a b&c → a%20b%26c
- %D8%B3%D9%84%D8%A7%D9%85 → سلام
Common encodings
| Character | Encoded |
|---|---|
| %20 | |
| & | %26 |
| = | %3D |
| ? | %3F |
| / | %2F |
| # | %23 |
| + | %2B |
| % | %25 |
| ا | %D8%A7 |
| م | %D9%85 |
Frequently asked questions
Why do Arabic links look like %D9%85%D8%B1…?
Browsers show the readable form, but when copied the link is percent-encoded UTF-8. Decode it here to read it.
Is a space %20 or +?
In a URL path or a standard query it is %20. HTML forms (application/x-www-form-urlencoded) use +.
What is the difference between the two encode modes?
Value mode encodes reserved characters like & and =; full-URL mode keeps them so the address still works.
What does %20 mean?
It's a space. 20 is the hex code for the space character, the same way %2F is a slash and %26 is an ampersand.
Why does my link break when a value contains &?
Because & is what separates the parameters in a link, so one inside a value has to be written as %26. Encode each value on its own in value mode.
Should I encode Arabic text in links I share?
Your browser shows the Arabic, but it sends the encoded version behind the scenes. In emails, texts or code, paste the encoded form (%D8…) and it won't break.