Текст SMS може бути відправлений в одному з двох кодувань в залежності від набору символів, використаних при складанні повідомлення.
Якщо текст містить тільки символи з наведеної таблиці, то 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 вважаються за два символи, нижче наведена таблиця таких символів:
^ | { | } | \ | [ | ~ | ] | | | € |
У разі наявності хоча б одного символу, який не належить до GSM кодування, SMS-повідомлення буде відправлено в кодуванні Unicode. Таке повідомлення може містити до 70 символів. Підтримуються тільки символи з таблиці юнікод (UTF-8) з кодами в діапазоні від U+0000 до U+9999, всі інші символи, на цей час, не підтримуються.
Довжина одиночного повідомлення, що складається тільки з символів 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 |