UTF-8 byte sizes
| Characters | Unicode range | UTF-8 bytes | UTF-16 bytes |
|---|---|---|---|
| English letters, digits, basic punctuation | U+0000–007F | 1 | 2 |
| Accented Latin, Greek, Cyrillic, Hebrew, Arabic, Urdu, Thaana | U+0080–07FF | 2 | 2 |
| Most CJK, Devanagari, Gurmukhi, Thai, many symbols | U+0800–FFFF | 3 | 2 |
| Emoji and rare characters | U+10000 and above | 4 | 4 |
A message of 100 Urdu letters occupies about 200 bytes in UTF-8, while 100 English letters take 100 bytes. Spaces and Latin punctuation inside Urdu text take one byte each. Try it with the Byte Counter.
Why it matters
- Databases and APIs with limits defined in bytes allow fewer Urdu characters than English ones.
- SMS uses a different scheme: GSM-7 packs 160 characters into a message, but any non-GSM character switches the whole message to UCS-2 (two bytes per character), leaving 70; see the SMS Character Counter.
- File names and URLs have byte limits that non-Latin text exhausts faster.
- Cloud and storage costs for text-heavy apps in non-Latin scripts.
Emoji and combined characters
Many emoji are not a single character but a sequence: a base emoji plus a skin-tone modifier, or several emoji joined by a zero-width joiner to form a family. Those sequences can exceed ten bytes while appearing as one symbol. Different tools count them as one or as many; see the Emoji Counter. Platforms such as X assign emoji a weight of two characters; see the X (Twitter) Character Counter.
Characters, code points and graphemes
Three layers are easy to confuse. A code point is a numbered Unicode character. A byte is a unit of storage; one code point takes one to four bytes. A grapheme is what a reader perceives as one symbol, which may be several code points. This site counts code points as characters, which matches most editors; see Word Count vs Character Count.
Try it yourself
Put the numbers above to work with these free tools:
Frequently asked questions
How many bytes is an Urdu word?
Roughly twice its number of letters, plus one byte per space.
Is UTF-16 more efficient for Urdu?
Equal for letters (2 bytes), but UTF-8 is more compact for text mixed with ASCII.
Why do emoji use 4 bytes?
They sit above the Basic Multilingual Plane, which needs four bytes in UTF-8.