BroadNet
Инструмент для разработчиков · на стороне клиента

Счётчик символов SMS.

Вставьте сообщение — и узнайте, сколько сегментов оно займёт, какую кодировку выберет оператор и какие символы переводят сообщение в двухбайтную кодировку UCS-2.

85 characters
·
Попробуйте пример.
Кодировка
GSM-7Однобайтовый алфавит
Длина
85
Сегменты
1
Оставшийся
75
Одно SMS вмещает 160 символов. Каждая часть составного SMS вмещает 153 (заголовок склейки занимает 7).

Как это работает

Граница 160 / 70 символов (и почему она бьёт по бюджету).

Кодировка SMS определяется в 3GPP TS 23.038. Вкратце: каждое сообщение кодируется либо как GSM-7 (7 бит, 160 символов/сегмент), либо как UCS-2 (16 бит, 70 символов/сегмент). Один символ, не соответствующий стандарту GSM-7, в любом месте сообщения переводит его в формат UCS-2 — ваш лимит символов сокращается более чем вдвое, как и максимальная длина, после которой оператор связи начинает тарифицировать сообщения по сегментам.

Символы, которые выглядят безобидно, но переводят сообщение в UCS-2

  • Типографские («фигурные») кавычки (“ ” ‘ ’) — автоматически заменяется в macOS, iOS и большинстве текстовых редакторов. Используйте прямые кавычки (" ') вместо них.
  • Длинные тире — и многоточия … — также автоматически вставляется автокоррекцией. Используйте дефис-минус (-) и три точки (...).
  • Буквы с диакритическими знаками отсутствуют в таблице расширения GSM-7. — é ñ ü допустимы; á í ó — нет (без расширения). Счётчик выше точно покажет, какой символ виноват.
  • Любой смайлик — 😀 🎉 ✅ все переводят сообщение в UCS-2.
  • Арабский, кириллический, китайский, японский, корейский — целые языки, не входящие в GSM-7. Единственный вариант — UCS-2.

Арифметика многосегментных сообщений

Когда сообщение превышает лимит одного сегмента, оператор добавляет заголовок User-Data Header (UDH), чтобы принимающее устройство могло собрать части обратно. Этот заголовок занимает 7 символов полезной нагрузки в каждой части — поэтому при многосегментной отправке лимит падает до 153 символов (GSM-7) или 67 (UCS-2) вместо 160 / 70.

Большинство операторов (и BroadNet) выставляют счёт за каждый сегмент. Счётчик выше показывает количество сегментов в реальном времени — уберите несколько символов до следующей границы, и можно сэкономить целый сегмент.

Готовы отправлять?

BroadNet предоставляет REST API, привязку SMPP, веб-хуки для отслеживания статуса доставки и официальный SDK TypeScript, а также спецификацию OpenAPI 3.1 для всех остальных языков. Запросите тестовый доступ, и мы ответим в течение одного рабочего дня.