Клиент спросил, почему рассылка обошлась вдвое дороже предыдущей, хотя была якобы идентичной. На деле текст отредактировали в текстовом процессоре, который заменил прямой апостроф в сокращении на типографский.
В алфавите GSM-7 на один сегмент отводится 160 символов (153 на часть при объединении), но типографского апострофа в нём нет. Один символ за пределами алфавита переводит всё сообщение в Unicode, где на сегмент приходится 70 символов (67 на часть при объединении). Поэтому текст из 150 символов, помещавшийся в один сегмент GSM-7, занял уже три сегмента.
Что теперь делает редактор сообщений
Счётчик сегментов всегда показывал кодировку. Теперь он также указывает символ, из-за которого включился Unicode, и предлагает одним нажатием заменить типичные проблемные знаки — типографские кавычки, длинное тире, многоточие и неразрывный пробел — аналогами из GSM-7. API текст не меняет: поля encoding и segments в ответе позволяют вашей системе принять решение самостоятельно.
Памятка для сообщения в один сегмент
- Пишите в редакторе обычного текста или вставляйте текст без форматирования.
- Используйте прямые кавычки, дефис и три точки вместо типографских аналогов.
- Никаких эмодзи в транзакционных сообщениях.
- Проверяйте самый длинный реальный вариант, а не только шаблон: длинное имя может вывести сообщение за предел одного сегмента.
Для языков с нелатинской письменностью это ограничение неизбежно: Unicode нужен для самого алфавита. В таком случае лучше сразу составить ясный текст на два полных сегмента, чем пытаться уложиться в полтора.


