Už vím proč má SMS jen 160 znaků

Každý, kdo píše často SMS, se naučil stručně a jasně formulovat své myšlenky. Musel se totiž smířit s tím, že pro jednu zprávu má k dispozici jen omezený počet sto šedesáti znaků. Proč se do SMS nevejde víc?
Už vím proč má SMS jen 160 znaků

Stručně

Podle standardu GSM je pro text jedné SMS povoleno 140 osmic bitů, tedy celkem 1 120 bitů. Pro přenesení jednoho znaků je přitom obvykle potřeba osm bitů. Protože jsou ale jednotlivé znaky ze zjednodušené sady pro SMS vyjádřeny pouze sedmi bity, vejde se do celkového počtu 1 120 bitů celých 160 znaků (1120 : 7 = 160).

Dříve než odhalíme tajemství sto šedesáti znaků SMS poněkud podrobněji, je třeba se podívat trochu blíže na formát zprávy tak, jak jej „chápou“ prvky systému GSM.

Jak se kóduje text SMS

Každá SMS obsahuje při posílání kromě zakódovaného vlastního textu zprávy ještě mnoho dalších přídavných informací, které jsou důležité pro správné doručení zprávy. Tyto informace ke zprávě doplňuje zařízení, které zprávu kóduje a odesílá. Přídavné informace jsou např. informace o čísle SMS centra a čísle odesilatele, specifikace protokolu, typ kódování, údaj o platnosti SMS, délka uživatelských dat apod.

Část zprávy, která obsahuje zakódovaný uživatelský text, může být podle standardu ETSI (European Telecommication Standard Institute) dlouhá maximálně 140 oktetů. Oktet je osmice nejčastěji binárních symbolů, tedy jedniček a nul. V klasickém způsobu kódování znaků, což je osm bitů na jeden textový znak, by se tedy do zprávy SMS vešlo jen 140 znaků.

Vývojáři standardu ale vymysleli užitečnou věc. Vybrali jen 128 znaků, které se v klasických textových zprávách vyskytují nejčastěji, a sestavili z nich tabulku. Tím mohli každý ze znaků zakódovat pouze sedmi bity namísto původních osmi. Jaké znaky jsou v tabulce vybrány se můžete podívat zde (anglicky). Na stejné stránce najdete i zajímavý konvertor na převod textové podoby SMS do šestnáctkové soustavy a naopak.

Do možných 1 120 bitů, které jsou určeny pro zakódování textu zprávy (140 oktetů × 8 bitů = 1120), se tak při sedmibitovém kódování vešlo 160 znaků, neboť 1120 : 7 = 160. A zde je zakopán pes. Jednotlivé skupiny bitů se ale pro odesílání sdružují po osmicích – jak ale úsporně zapustit do osmic sedmibitové znaky? Princip je na následujícím schématu.

Klepněte pro větší obrázek

Dejme tomu, že potřebujeme napsat znaky ABCD. Do prvního oktetu se zařadí všech sedm bitů znaku A. Tedy A0 až A6. Na poslední osmé místo, které je volné, zařadíme první ze sedmi bitů znaku B. Ve druhém oktetu začneme druhým bitem B a tím pádem nám ve druhém oktetu zůstanou dvě volná místa, na něž vložíme první dva znaky písmene C. Takto se znaky mezi oktety postupně přelévají, dokud nebudou do oktetů vysázeny všechny.

Pokud jsou již vyčerpány všechny znaky, které chceme zadávat, a poslední oktet není ještě zaplněn do posledního místa, volné bity se naplní nulami. Ty budou při zpětném kódování ignorovány. Tímto úsporným způsobem lze např. do čtrnácti oktetů zakódovat beze zbytku šestnáct znaků (14 × 8 = 16 × 7 = 112) atd.

Zkracování SMS

Ne všechny SMS zprávy používají kódování znaků do sedmi bitů, neboť tabulka se 128 znaky je omezená a nestačí vystihnout všechny potřebné symboly a informace. Některé informace je třeba zakódovat do osmi bitů a do zprávy se pak vejde pouze 140 znaků. Týká se to např. posílání vyzváněcích melodií, doručování loga na mobil nebo SMS pro konfiguraci mobilu pro wap (např. Nokia 7110). Do sto čtyřiceti znaků se musí rovněž vejít Rusové nebo jiné národy, které při psaní používají cyrilici. 

V případě, že se v textu SMS zprávy objeví znaky s českou diakritikou, je potřeba použít kódování Unicode (UCS2). V něm jsou znaky zapisovány šestnáctibitově. V tomto případě ale může být SMS dlouhá pouhých sedmdesát znaků (1 120 : 16 = 70). Zde je tedy příčina tolikrát proklínaného zkracování SMS při použití českého slovníku T9 s diakritikou. Šestnácti bity se také kódují Flash SMS, což jsou zprávy, které se po příjmu automaticky zobrazí na displeji mobilního telefonu.

 

Stručně

Podle standardu GSM je pro text jedné SMS povoleno 140 osmic bitů, tedy celkem 1 120 bitů. Pro přenesení jednoho znaků je přitom obvykle potřeba osm bitů. Protože jsou ale jednotlivé znaky ze zjednodušené sady pro SMS vyjádřeny pouze sedmi bity, vejde se do celkového počtu 1 120 bitů celých 160 znaků (1120 : 7 = 160).

Diskuze (33) Další článek: Otevřený dopis Oskarovi: čí byla vina?

Témata článku: Ostatní, SMS, Znak


Určitě si přečtěte

Xiaomi Mi 8 zatopí top Androidům. Má špičkový foťák a 3D odemykání obličejem

Xiaomi Mi 8 zatopí top Androidům. Má špičkový foťák a 3D odemykání obličejem

** Vyzkoušeli jsme novinku, která se prodává zatím jen v Číně ** Mi 8 se chlubí vysokým výkonem a velmi dobrým fotoaparátem ** Pokud bude česká cena rozumná, může to být hit

Jan Láska | 21

RECENZE: Huawei P20 Lite — odlehčená verze letošní špičky láká vzhledem i cenou

RECENZE: Huawei P20 Lite — odlehčená verze letošní špičky láká vzhledem i cenou

** Osvědčený recept Huawei v trochu modernějším střihu ** Výřez v displeji neruší ani zdaleka, jak by se mohlo zdát ** Odemykání obličejem je návykové a překvapivě dobře funguje

Martin Herodek | 35

Aplikace pro Android, bez kterých nedokážu žít [Jakub Vrbacký]

Aplikace pro Android, bez kterých nedokážu žít [Jakub Vrbacký]

** Donedávna jsem používal Windows 10 Mobile, změna bolela ** Co není na očích, neexistuje, takže mám jedinou plochu ** Důležitým pomocníkem je Nova Launcher s bohatým nastavením

Jakub Vrbacký | 31

Xiaomi Redmi Note 5A Prime: levný neznamená odbytý [recenze]

Xiaomi Redmi Note 5A Prime: levný neznamená odbytý [recenze]

** Překvapivě schopný mix parametrů s rozumnou cenovkou ** Slabší výkon kompenzuje HD rozlišením a dostatkem paměti ** Přítomná trojice slotů na karty a infraport se nevidí často

Martin Herodek | 11