SMPP Data Coding Scheme (DCS) определяет кодировку символов в SMS-сообщениях, что напрямую влияет на их отображение на устройствах получателей. SMPP поддерживает несколько кодировок, включая GSM 7-bit, UCS-2 (Unicode), 8-bit binary, а также различные национальные алфавиты. Выбор кодировки важен, поскольку он влияет на максимальную длину сообщения и совместимость с устройствами.
Правильная настройка DCS позволяет избежать ошибок отображения текста, проблем с обрезкой сообщений и увеличенных затрат на отправку.
DCS в SMPP представлен одним байтом (8 бит), который содержит информацию о кодировке, типе сообщения и дополнительных параметрах.
Бит | Значение |
---|---|
7-4 | Зарезервировано (обычно 0) |
3 | Flash SMS (если установлено в 1, сообщение отображается сразу на экране и не сохраняется) |
2 | Reserved (не используется) |
1-0 | Кодировка символов |
DCS (Hex) | DCS (Dec) | Кодировка | Макс. длина сообщения | Применение |
---|---|---|---|---|
0x00 | 0 | GSM 7-bit | 160 символов | Стандартные SMS в латинице |
0x04 | 4 | 8-bit binary | 140 байт | Бинарные SMS (WAP Push, OTA) |
0x08 | 8 | UCS-2 (Unicode) | 70 символов | Поддержка кириллицы, арабского, китайского |
0x10 | 16 | GSM 7-bit (Flash) | 160 символов | Мгновенное сообщение (не сохраняется в телефоне) |
0x18 | 24 | UCS-2 (Flash) | 70 символов | Unicode Flash SMS |
0xF5 | 245 | GSM 7-bit с указанием языка | 160 символов | Национальные языки (Греческий, Турецкий и др.) |
При использовании GSM 7-bit каждое сообщение может содержать до 160 символов, но при переходе на Unicode (UCS-2) максимальная длина снижается до 70 символов.
GSM 7-bit (DCS = 0x00)
Используется по умолчанию и поддерживает следующие символы:
@ £ $ ¥ è é ù ì ò Ç Ø ø Å å Δ _ Φ Γ Λ Ω Π Ψ Σ Θ Ξ Æ æ ß É ! " # ¤ % & ' ( ) * + , - . / 0-9 : ; < = > ? ¡ A-Z Ä Ö Ñ Ü § ¿ a-z ä ö ñ ü à
Дополнительные символы доступны через escape-символ (0x1B).
Максимальная длина SMS:
UCS-2 (DCS = 0x08)
Unicode-формат, используемый для поддержки кириллических, арабских, китайских и других символов.
Максимальная длина SMS:
8-bit binary (DCS = 0x04)
Используется для передачи бинарных данных, таких как WAP Push, настройки OTA (Over-The-Air), ringtones и логотипы.
Максимальная длина SMS:
Если сообщение длиннее установленного лимита (160 символов для GSM 7-bit или 70 для UCS-2), оно автоматически разбивается на несколько частей и собирается у получателя.
Пример длинного сообщения:
Для правильной сборки используется UDH (User Data Header), который добавляет метаданные в каждую часть сообщения.
При возникновении вопросов о настройке кодировки в SMPP обратитесь в техническую поддержку.