Краткий ответ
В одной арабской SMS помещается до 70 символов, потому что арабский текст отправляется в кодировке UCS-2. Более длинные арабские сообщения делятся на сегменты по 67 символов, так как каждый сегмент содержит заголовок для сборки сообщения. Для сравнения: английское сообщение в GSM-7 вмещает 160 символов, или 153 в сегменте.
Почему лимит для арабского ниже, чем для английского?
Каждая SMS несёт до 140 октетов пользовательских данных (3GPP TS 23.040). GSM-7 упаковывает 7-битные символы, поэтому в сообщение помещается 160 символов. Арабские буквы не входят в алфавит GSM-7, поэтому сообщение использует UCS-2 с двумя октетами на символ: 140 / 2 = 70 символов.
| Кодировка | Для чего используется | Одна SMS | Сегмент в составной SMS |
|---|---|---|---|
| GSM-7 | Базовые латинские буквы, цифры, распространённые знаки препинания | 160 символов | 153 символа |
| UCS-2 | Арабский, эмодзи, другие символы вне GSM | 70 символов | 67 символов |
Сколько сегментов займёт арабское сообщение?
Если сообщение длиннее 70 символов, разделите число символов на 67 и округлите вверх. Каждый сегмент обычно тарифицируется как одна SMS.
| Арабские символы | Сегменты |
|---|---|
| от 1 до 70 | 1 |
| от 71 до 134 | 2 |
| от 135 до 201 | 3 |
| от 202 до 268 | 4 |
Типичные ошибки при отправке арабских SMS
- Смешивание английского и арабского в одном сообщении: всё сообщение переходит в UCS-2, поэтому английский текст тоже учитывается в лимите 70 символов.
- Добавление эмодзи: большинство из них отправляются как две единицы UCS-2, поэтому каждое занимает два символьных места.
- Длинные арабские ссылки и подписи, из-за которых сообщение уходит в лишний сегмент.
- Подготовьте текст на арабском.
- Вставьте его в счётчик символов, чтобы увидеть кодировку и число сегментов.
- Сокращайте текст, пока он не уложится в запланированное число сегментов.
- Если нужны обе версии, отправляйте английский и арабский варианты отдельными сообщениями.
