# Определение кодировки и стоимость SMS

> Определение кодировки означает проверку, все ли символы входят в алфавит GSM-7; если хотя бы один не входит, всё сообщение становится UCS-2, а ёмкость падает со 160 до 70 символов. Поскольку SMS тарифицируется посегментно, один случайный эмодзи или типографская кавычка могут удвоить или утроить стоимость сообщения.

- Канонический URL: https://www.broadnet.me/ru/reference/encoding-detection-and-cost
- Язык: ru
- Последнее обновление: 2026-07-18
- Издатель: BroadNet (https://www.broadnet.me)

Как определить, GSM-7 текст или UCS-2, какие символы незаметно вынуждают UCS-2 и как кодировка определяет число сегментов — а значит и стоимость — каждого отправляемого SMS.

## Как определить GSM-7 против UCS-2

Правило простое и абсолютное: если каждый символ сообщения присутствует в базовой таблице или таблице расширения GSM-7, сообщение можно отправить как GSM-7; если какой-либо символ отсутствует, всё сообщение должно использовать UCS-2. Поэтому определение — это проверка принадлежности множеству алфавита GSM-7, применённая ко всей строке, с учётом того, что десять символов расширения считаются за два септета каждый.

*Логика определения*

```text
for each character c in message:
  if c not in GSM7_BASIC and c not in GSM7_EXTENSION:
     encoding = UCS-2   # one stray char forces the whole message
     break
else:
  encoding = GSM-7
```

## Символы, незаметно вынуждающие UCS-2

Дорогие символы — это те, которые пользователи вносят, сами того не замечая. Текстовые редакторы и телефоны автоматически заменяют прямые кавычки и дефисы типографскими версиями, которых нет в GSM-7. Эмодзи никогда не входят в GSM-7. Нелатинские имена и любая акцентированная буква вне набора акцентов GSM-7 делают то же самое. Очистка их перед отправкой — замена типографской пунктуации на ASCII, транслитерация где допустимо — удерживает сообщения в GSM-7.

*Распространённые скрытые триггеры UCS-2 и безопасные замены*

| Символ-триггер | Замена для GSM-7 |
|---|---|
| ' ' (фигурные одинарные кавычки) | ' (прямой апостроф) |
| “ ” (фигурные двойные кавычки) | " (прямая кавычка) |
| – — (короткое/длинное тире) | - (дефис) |
| … (многоточие) | ... (три точки) |
| эмодзи | (удалить или описать словами) |
| неразрывный пробел | (обычный пробел) |

## Как кодировка определяет число сегментов

SMS тарифицируется посегментно, а кодировка задаёт, сколько сегментов нужно сообщению. Пороги фиксированы: GSM-7 даёт 160 в одном сегменте, затем 153 на часть; UCS-2 даёт 70, затем 67. Поэтому сообщение из 75 символов — это один сегмент в GSM-7, но два в UCS-2. Рекламное SMS из 160 символов с одним эмодзи прыгает с одного сегмента до трёх. Кодировка — крупнейший управляемый фактор стоимости сообщения.

*Пороги сегментов*

| Сегменты | Символы GSM-7 | Символы UCS-2 |
|---|---|---|
| 1 | 1 – 160 | 1 – 70 |
| 2 | 161 – 306 | 71 – 134 |
| 3 | 307 – 459 | 135 – 201 |
| n (n ≥ 2) | 153 × n | 67 × n |

## Практический контроль стоимости

Три привычки делают стоимость SMS предсказуемой. Во-первых, проверяйте и очищайте символы каждого исходящего сообщения, отмечая всё, что вынуждает UCS-2. Во-вторых, держите шаблоны в пределах одного сегмента GSM-7 (≤160 символов) везде, где это позволяет сообщение. В-третьих, измеряйте фактическое число сегментов на сообщение и на кампанию, поскольку именно оно — а не число символов — тарифицируется. Калькулятор сегментов делает компромисс наглядным ещё до отправки.

## Частые вопросы

### Как узнать, GSM-7 моё SMS или UCS-2?

Проверьте каждый символ по алфавиту GSM-7. Если все символы входят в базовую таблицу или таблицу расширения GSM-7, это GSM-7; если хотя бы один не входит, всё сообщение — UCS-2. Проверка GSM-7/Unicode автоматизирует это и подсвечивает проблемные символы.

### Во сколько мне обходится один эмодзи в SMS?

Потенциально дорого. Один эмодзи вынуждает всё сообщение перейти на UCS-2, снижая ёмкость со 160 до 70 символов. Сообщение из 160 символов с одним эмодзи переходит с одного сегмента до трёх, примерно утраивая стоимость.

### Как тарифицируется многосегментное SMS?

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

### Как удержать сообщения в GSM-7?

Очищайте ввод перед отправкой: заменяйте типографские кавычки и тире ASCII-эквивалентами, удаляйте эмодзи и транслитерируйте случайные акценты где допустимо. Держите шаблоны в пределах 160 символов GSM-7, чтобы они оставались одним сегментом.

### Стоимость определяется числом символов или числом сегментов?

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

## Источники

- [3GPP TS 23.038 — alphabets and data coding](https://www.3gpp.org/dynareport/23038.htm)
- [3GPP TS 23.040 — SMS technical realization](https://www.3gpp.org/dynareport/23040.htm)

## См. также

- [Набор символов GSM-7](https://www.broadnet.me/ru/reference/gsm7-character-set)
- [UCS-2 и Unicode SMS](https://www.broadnet.me/ru/reference/ucs2-unicode-sms)
- [Сегментация SMS и UDH](https://www.broadnet.me/ru/reference/sms-segmentation-concatenation-udh)
- [Калькулятор сегментов SMS (бесплатный инструмент)](https://www.broadnet.me/ru/tools/sms-segment-calculator)
- [Проверка GSM-7 / Unicode (бесплатный инструмент)](https://www.broadnet.me/ru/tools/gsm7-unicode-checker)
