GSM 03.38 – eto standart kodirovki, ispol'zuyemyy v mobil'nykh setyakh dlya otpravki SMS. On opredelyayet nabor simvolov, kotoryye mozhno ispol'zovat' v 7-bitnom kode, a takzhe pravila obrabotki rasshirennykh simvolov, vliyayushchiye na dlinu soobshcheniya.
Standart GSM 7-bit pozvolyayet otpravlyat' do 160 simvolov v odnom SMS, togda kak ispol'zovaniye simvolov, vykhodyashchikh za predely etogo nabora, privodit k perekhodu na Unicode (UCS-2), umen'shaya maksimal'nuyu dlinu SMS do 70 simvolov.
Ponimaniye kodirovki GSM 03.38 vazhno pri sostavlenii tekstov SMS, tak kak nepravil'noye ispol'zovaniye simvolov mozhet uvelichit' kolichestvo otpravlyayemykh soobshcheniy i povysit' zatraty na rassylku.
Показати більше 852 / 5 000
GSM 03.38 – це стандарт кодування, який використовується в мобільних мережах для надсилання SMS. Він визначає набір символів, які можна використовувати в 7-бітному коді, а також правила обробки розширених символів, що впливають на довжину повідомлення.
Стандарт GSM 7-bit дозволяє відправляти до 160 символів в одному SMS, тоді як використання символів, що виходять за межі цього набору, призводить до переходу на Unicode (UCS-2), зменшуючи максимальну довжину SMS до 70 символів.
Розуміння кодування GSM 03.38 важливе при складанні текстів SMS, оскільки неправильне використання символів може збільшити кількість повідомлень, що відправляються, і підвищити витрати на розсилку.
| Символи | Кодування (Hex) | Символи | Кодування (Hex) |
|---|---|---|---|
| @ | 0x00 | SP (пробіл) | 0x20 |
| £ | 0x01 | 0 | 0x30 |
| $ | 0x02 | 1 | 0x31 |
| ¥ | 0x03 | 2 | 0x32 |
| è | 0x04 | 3 | 0x33 |
| é | 0x05 | 4 | 0x34 |
| ù | 0x06 | 5 | 0x35 |
| ì | 0x07 | 6 | 0x36 |
| ò | 0x08 | 7 | 0x37 |
| Ç | 0x09 | 8 | 0x38 |
| LF (новий рядок) | 0x0A | 9 | 0x39 |
| Ø | 0x0B | A | 0x41 |
| ø | 0x0C | B | 0x42 |
| CR (повернення каретки) | 0x0D | C | 0x43 |
| Å | 0x0E | D | 0x44 |
| å | 0x0F | E | 0x45 |
| Δ | 0x10 | F | 0x46 |
| _ | 0x11 | G | 0x47 |
| Φ | 0x12 | H | 0x48 |
| Γ | 0x13 | I | 0x49 |
| Λ | 0x14 | J | 0x4A |
| Ω | 0x15 | K | 0x4B |
| Π | 0x16 | L | 0x4C |
| Ψ | 0x17 | M | 0x4D |
| Σ | 0x18 | N | 0x4E |
| Θ | 0x19 | O | 0x4F |
| Ξ | 0x1A | P | 0x50 |
| ESC (Escape) | 0x1B | Q | 0x51 |
| Æ | 0x1C | R | 0x52 |
| æ | 0x1D | S | 0x53 |
| ß | 0x1E | T | 0x54 |
| É | 0x1F | U | 0x55 |
Повний список символів можна знайти у офіційній специфікації GSM 03.38 (ETSI TS 100 900).
Розширені символи та escape-послідовність
Деякі символи не входять до основного набору GSM 7-bit і вимагають використання escape-послідовності (0x1B), що фактично збільшує їх довжину до двох символів.
Приклади розширених символів:
| Символ | Кодування (Hex) |
|---|---|
| ^ | 0x1B14 |
| { | 0x1B28 |
| } | 0x1B29 |
| 0x1B2F | |
| [ | 0x1B3C |
| ~ | 0x1B3D |
| ] | 0x1B3E |
| ` | ` |
Використання цих символів зменшує доступну кількість символів в одному SMS. Наприклад, якщо повідомлення складається з 160 символів і включає {, то реальна кількість доступних символів зменшиться до 159.
Перехід на Unicode (UCS-2) та його вплив на довжину SMS
Якщо повідомлення містить хоча б один символ, що не входить до GSM 7-bit, воно буде закодовано в UCS-2 (16-бітове кодування Unicode).
Приклад символів, які призводять до переходу на UCS-2:
Приклад:
Щоб уникнути непотрібного збільшення кількості повідомлень:
Розробникам рекомендується перевіряти повідомлення перед відправкою, щоб оптимізувати їх довжину та уникнути непотрібного збільшення кількості сегментів SMS.
Якщо у вас є запитання щодо кодування SMS, зверніться до технічної підтримки.