Реєстрація

Довжина SMS і допустимі символи

Набори символів, які підтримуються

Текст SMS може бути відправлений в одному з двох кодувань в залежності від набору символів, використаних при складанні повідомлення.

Кодування GSM (латиниця, 7 bit)

Якщо текст містить тільки символи з наведеної таблиці, то SMS буде відправлено в кодуванні GSM:

@ Δ SP 0 ¡ P ¿ p
£ _ ! 1 A Q a q
$ Φ " 2 B R b r
¥ Γ # 3 C S c s
è Λ ¤ 4 D T d t
é Ω % 5 E U e u
ù Π & 6 F V f v
ì Ψ ' 7 G W g w
ò Σ ( 8 H X h x
Ç Θ ) 9 I Y i y
LF Ξ * : J Z j z
Ø + ; K Ä k ä
ø Æ , < L Ö l ö
CR æ - = M Ñ m ñ
Å ß . > N Ü n ü
å É / ? O § o à

CR - символ повернення каретки
LF - символ переносу рядка
SP - символ пробілу

Це кодування дозволяє відправляти до 160 символів в одному SMS-повідомленні. Також слід враховувати, що в GSM-7 кодуванні існує кілька символів, які при підрахунку довжини SMS вважаються за два символи, нижче наведена таблиця таких символів:

^ { } \ [ ~ ] |

Кодування Unicode (кирилиця, розширений набір символів)

У разі наявності хоча б одного символу, який не належить до GSM кодування, SMS-повідомлення буде відправлено в кодуванні Unicode. Таке повідомлення може містити до 70 символів. Підтримуються тільки символи з таблиці юнікод (UTF-8) з кодами в діапазоні від U+0000 до U+9999, всі інші символи, на цей час, не підтримуються.

Довжина SMS

Довжина одиночного повідомлення, що складається тільки з символів GSM-алфавіту - 160 символів.

Довжина одиночного повідомлення в кодуванні Unicode - 70 символів.

У разі, якщо SMS-повідомлення перевищує зазначену довжину, воно розбивається на частини - сегменти.

Увага! Кожен сегмент SMS відправляється і тарифікується як окреме повідомлення.

Кожен сегмент SMS містить спеціальний заголовок (кілька символів службової інформації) для подальшого склеювання на стороні одержувача, тому максимальна довжина одного сегмента в довгому повідомленні становить 153 символа в GSM кодуванні та 67 символів у Unicode.

Детальніше про те, як розраховується довжина SMS і кількість сегментів.

Максимальна довжина SMS становить 140 байт. Кожен символ GSM-алфавіту кодується 7 бітами (за винятком кількох, які кодуються 14 бітами). Це дозволяє в 140 байтах, відведених для тексту SMS, передавати до 160 символів (140*8/7=160). При використанні в тексті SMS навіть одного символу, що не відноситься до GSM, весь текст передається в кодуванні Unicode. При цьому допустима кількість символів в одиночному повідомленні скорочується до 70, так як в Unicode кожен символ кодується за допомогою 16 біт (140*8/16=70).

Для довгих SMS-повідомлень використовується заголовок (або UDH), який містить 6 байт службової інформації, що займає 7 символів при використанні тільки латиниці або 3 символи при використанні Юнікоду. Відповідно максимальна довжина тексту в одному сегменті становить 153 символи для GSM і 67 символів для Unicode кодування.

Кількість сегментів у SMS Кількість символів у SMS
Кодування GSM Кодування Unicode
1 160 70
2 306 134
3 459 201
4 612 268
5 765 335
6 918 402
7 1071 469
8 1224 536
9 1377 603
10 1530 670
Зверніть увагу! Хоча специфікація протоколу SMPP дозволяє створювати повідомлення розміром до 128 сегментів, на практиці оператори мобільного зв'язку не гарантують якісну доставку повідомлень, довжина яких перевищує 3 сегмента. Повідомлення, які мають більше 10 сегментів, деякі оператори не доставляють зовсім або можуть доставити тільки частину сегментів, тим самим зробивши безглуздим весь текст повідомлення. Тому ми рекомендуємо відправляти повідомлення, довжиною не більше 3 сегментів. Доставка довших SMS не гарантується операторами зв'язку.