Перейти к содержимому
OmniChannels.ai
Меню

Лимит символов SMS: GSM-7, Unicode, арабский и эмодзи

Лимиты символов SMS: GSM-7 и UCS-2, 160 и 70 знаков, 153 и 67 в сегменте, почему арабский и эмодзи удорожают рассылку. Как уложиться в сегмент.

Обновлено 8 мин чтения

Автор: OmniChannels.ai Editorial Team · Проверил: BroadNet Messaging Solutions Team

SMS и OTP

Короткий ответ

Одно SMS вмещает 140 байт текста. В 7-битном алфавите GSM, который используется для базового латинского текста, это 160 символов; в Unicode (UCS-2), необходимом для арабского, эмодзи и многих букв с диакритикой, это 70 символов. Более длинные сообщения делятся на сегменты по 153 символа GSM-7 или 67 символов Unicode, и каждый сегмент тарифицируется. Один символ вне GSM переводит всё сообщение в Unicode.

На этой странице
  1. Сколько символов помещается в одно SMS?
  2. В чём разница между GSM-7 и UCS-2?
  3. Почему в сегменте длинного SMS 153 или 67 символов?
  4. Почему арабский и эмодзи меняют стоимость?
  5. Как писать SMS, которые умещаются в сегмент?
  6. Типичные ошибки и ограничения
  7. Чем помогает OmniChannels.ai

Главное

  • Одно SMS содержит 140 октетов пользовательских данных: 160 символов GSM-7 или 70 символов UCS-2, как определено в 3GPP TS 23.040 и TS 23.038.
  • В составных сообщениях часть места занимает заголовок в каждой части, поэтому в сегменте остаётся 153 символа GSM-7 или 67 символов UCS-2.
  • Одна арабская буква, эмодзи, «фигурная» кавычка или неподдерживаемый диакритический знак переводит всё сообщение в кодировку UCS-2.
  • Символы расширения GSM-7, такие как €, [, ], {, }, ~, \ и |, считаются за два символа, потому что для них нужен управляющий код.
  • SMS на арабском стоят дороже в пересчёте на слово, чем на английском, из-за UCS-2, поэтому сокращение текста напрямую влияет на стоимость кампании.

Это руководство для маркетологов, CRM-команд и разработчиков, которые пишут SMS на английском, арабском и других языках и хотят управлять стоимостью и доставляемостью. Вы узнаете, как устроено кодирование SMS, сколько символов помещается в каждый сегмент и как писать сообщения, которые укладываются в предсказуемое число сегментов.

Сколько символов помещается в одно SMS?

Одно SMS содержит 140 октетов (байт) пользовательских данных. Сколько символов в них поместится, зависит от кодировки, а провайдер выбирает кодировку автоматически по тем символам, которые вы используете.

Правила задают две спецификации 3GPP: TS 23.040 определяет структуру SMS-сообщения, а TS 23.038 определяет алфавиты.

Кодировка Бит на символ Одно SMS В сегменте при разбиении Для чего используется
7-битный алфавит GSM по умолчанию 7 160 символов 153 символа Базовые латинские буквы, цифры, распространённая пунктуация, некоторые буквы с диакритикой
UCS-2 (16-битный Unicode) 16 70 символов 67 символов Арабский, эмодзи, китайский, большинство букв с диакритикой и специальных символов
8-битные данные 8 140 байт 134 байта Бинарные данные, не обычный текст

Арифметика проста: 140 октетов × 8 бит ÷ 7 бит = 160 символов GSM-7, а 140 ÷ 2 байта = 70 символов UCS-2.

В чём разница между GSM-7 и UCS-2?

GSM-7 — компактный 7-битный алфавит, созданный для SMS. UCS-2 — 16-битная кодировка Unicode, которая может передать почти любую письменность, но занимает на символ более чем вдвое больше места.

GSM-7 включает A–Z, a–z, 0–9, распространённую пунктуацию, набор символов вроде @, £, $, % и &, а также ограниченный набор букв с диакритикой, среди них é, è, ü, ñ и à. В нём нет многих букв с диакритикой, которые используются во французском, испанском и португальском языках, например á, ç (строчная), ê или õ, а также нет ни арабской, ни кириллической, ни азиатских письменностей.

Таблица расширения

Некоторые распространённые символы находятся в таблице расширения GSM-7 и требуют предшествующего управляющего кода, поэтому каждый считается за два символа: € [ ] { } ~ \ | ^ и символ перевода страницы. Сообщение с несколькими знаками евро или скобками быстро теряет ёмкость.

Таблицы национальных языков

TS 23.038 также определяет таблицы сдвига для национальных языков, таких как турецкий, испанский, португальский и несколько индийских языков. Они позволяют использовать больше символов в 7-битном режиме. Поддержка зависит от сетей, провайдеров и телефонов, поэтому не полагайтесь на них, не протестировав на нужных операторах.

Почему в сегменте длинного SMS 153 или 67 символов?

Если сообщение превышает одно SMS, оно делится на сегменты, и каждый сегмент несёт заголовок пользовательских данных (UDH), по которому телефон собирает сообщение. Обычный заголовок занимает 6 октетов, оставляя 134 октета для текста.

  • В GSM-7 134 октета вмещают 153 символа.
  • В UCS-2 134 октета вмещают 67 символов.

Телефон показывает одно сообщение, но ваш провайдер и оператор считают и, как правило, тарифицируют каждый сегмент.

Сегменты Максимум символов GSM-7 Максимум символов UCS-2
1 160 70
2 306 134
3 459 201
4 612 268
5 765 335

Две практические детали меняют точное число. Провайдеры не разрывают между сегментами двухсимвольную последовательность расширения или эмодзи, поэтому в сегменте может поместиться на один символ меньше теоретического максимума. Кроме того, многие провайдеры ограничивают число сегментов в сообщении, поэтому очень длинные тексты могут быть отклонены или обрезаны; уточните лимит у своего провайдера.

Почему арабский и эмодзи меняют стоимость?

Любой символ вне GSM-7 переводит всё сообщение в UCS-2. Это снижает лимит одиночного сообщения со 160 до 70 символов, а лимит сегмента — со 153 до 67.

  • Текст на арабском всегда использует UCS-2. Арабское сообщение в 100 символов занимает два сегмента; такое же по длине английское помещается в один.
  • Эмодзи находятся вне GSM-7. Большинство эмодзи расположены за пределами базовой многоязычной плоскости Unicode и представлены в UTF-16 суррогатной парой, то есть двумя 16-битными единицами, поэтому занимают две из 70 доступных позиций. Составные эмодзи, например флаги или варианты с оттенками кожи, занимают больше.
  • Скрытые «виновники» в английском тексте: «фигурные» кавычки (’ “ ”), короткое и длинное тире (– —), символ многоточия (…) и неразрывные пробелы, которые часто попадают в текст из текстовых редакторов или дизайнерских инструментов. Любой из них переводит сообщение в UCS-2.

Пример расчёта: кампания торгового центра в Эр-Рияде

«Najm Mall» (условный пример) планирует SMS-рассылку на выходные для 200 000 клиентов на английском и арабском. Мы подсчитали символы в каждом черновике.

Черновик Символы Кодировка Сегменты
Английский с обычными дефисами, без эмодзи 122 GSM-7 1
Тот же английский с двумя короткими тире и одним эмодзи 125 единиц UCS-2 2
Арабский, первый черновик 153 UCS-2 3
Арабский, после редактуры 101 UCS-2 2

Английская версия (пример намеренно приведён на английском, чтобы показать кодировку GSM-7): "Najm Mall: Weekend sale, up to 30% off home & kitchen. Fri-Sat 10am-10pm. Show this SMS at the till. Reply STOP to opt out". Добавление эмодзи с хлопушкой и типографских тире вдвое увеличило число сегментов для англоязычной аудитории. Редактура арабского текста с трёх сегментов до двух снизила расходы на эту аудиторию на треть при том же предложении и том же сроке акции.

Как писать SMS, которые умещаются в сегмент?

Сначала определите бюджет сегментов, затем пишите под него. Чек-лист для каждой кампании:

  1. Задайте цель: один сегмент для OTP-кодов и уведомлений; один-два для маркетинговых сообщений.
  2. Пишите в текстовом редакторе без форматирования и заменяйте типографские кавычки и тире на обычные.
  3. Не добавляйте эмодзи в английские сообщения, если вы не решили, что дополнительный сегмент того стоит.
  4. Используйте счётчик сегментов, который определяет кодировку до отправки, и просматривайте итоговый текст, включая поля персонализации с максимально вероятной длиной.
  5. Учитывайте переменные: длинное имя клиента или название товара может перевести сообщение в следующий сегмент.
  6. Для арабского уберите огласовки (tashkeel) и декоративное удлинение букв (tatweel), каждый такой знак считается как символ; выбирайте короткие формулировки и сокращения, которые аудитория читает естественно.
  7. Сокращайте ссылки с помощью собственного брендированного домена, а не вставляйте длинные трекинговые URL.
  8. Тестируйте на телефонах на каждом языке, чтобы проверить отображение и число сегментов.

Для OTP-кодов ставьте код в начало и укладывайтесь в один сегмент; см. наше руководство по OTP. Для планирования кампаний см. лучшие практики массовой SMS-рассылки.

Типичные ошибки и ограничения

  • Подсчёт символов без учёта кодировки. Сообщение из 90 символов может занять один сегмент или два.
  • Небрежное смешивание языков. Одно арабское слово в английском сообщении переводит всё сообщение в Unicode.
  • Игнорирование таблицы расширения. Цены в евро и скобки в GSM-7 считаются за два символа.
  • Забытая длина персонализации. Тестируйте на самых длинных значениях из ваших данных.
  • Предположение, что все провайдеры считают одинаково. Правила разбиения и максимальное число сегментов различаются; уточняйте у своего провайдера.
  • Ограничения этого руководства: телефоны и сети иногда по-разному обрабатывают крайние случаи, особенно таблицы национальных языков и сложные эмодзи. Тестируйте важные сообщения на тех операторах, куда вы отправляете.

Чем помогает OmniChannels.ai

OmniChannels.ai поддерживает арабский и английский в SMS-рассылках и других каналах: предпросмотр сообщения перед отправкой, загрузка из Excel или CSV, планирование и фильтрация дубликатов. Отчёты о доставке (DLR) со сводным и расширенным видом, фильтрами и экспортом в CSV помогают сверить, что было отправлено и доставлено. SMS доставляются через BroadNet Technologies, телеком-компанию в сфере сообщений с подключением к SMS-операторам, а оплата идёт с предоплатного кошелька. Узнайте больше о том, как запускать омниканальные кампании.

Часто задаваемые вопросы

Сколько символов помещается в одно SMS?

Одно SMS содержит 140 октетов пользовательских данных. В 7-битном алфавите GSM по умолчанию это 160 символов. В кодировке UCS-2 (Unicode), которая нужна для арабского, китайского, эмодзи и символов вне алфавита GSM, это 70 символов. Если сообщение длиннее, оно отправляется как несколько связанных сегментов и, как правило, тарифицируется по сегментам.

Почему в части длинного SMS 153 символа, а не 160?

При разбиении сообщения каждая часть получает заголовок пользовательских данных, по которому телефон собирает части воедино. Обычный заголовок занимает 6 октетов, поэтому в каждом сегменте остаётся место для 153 символов GSM-7 или 67 символов UCS-2. Телефон показывает части как одно сообщение, но сеть и ваш провайдер считают их отдельно.

Сколько символов может быть в SMS на арабском?

Арабского языка нет в 7-битном алфавите GSM, поэтому SMS на арабском используют кодировку UCS-2: 70 символов в одном сообщении или 67 на сегмент, если сообщение длиннее. Пробелы, знаки препинания и западные цифры в арабском сообщении тоже входят в этот лимит Unicode, потому что всё сообщение использует одну кодировку.

Делают ли эмодзи SMS дороже?

Обычно да. Эмодзи нет в алфавите GSM, поэтому один эмодзи переводит всё сообщение в Unicode и снижает лимит одиночного сообщения со 160 до 70 символов. Большинство эмодзи занимают две 16-битные единицы, а некоторые составные, например флаги, занимают ещё больше, поэтому они расходуют дополнительное место в лимите Unicode.

Можно ли отправлять SMS на арабском в GSM-7, чтобы сэкономить?

Только если писать арабский латинскими буквами, так называемым арабизи (Arabizi). Такой текст помещается в GSM-7, но многим клиентам его труднее читать, а бренд он может сделать менее надёжным в глазах получателя. Лучше экономить за счёт сжатого арабского текста: уберите огласовки и декоративное удлинение букв и ориентируйтесь на заданное число сегментов.

Источники

  1. 3GPP TS 23.038: Alphabets and language-specific information
  2. 3GPP TS 23.040: Technical realization of the Short Message Service (SMS)
  3. UTF-8, UTF-16, UTF-32 and BOM FAQ — Unicode Consortium