GSM 03.38

Ұялы телефонда **GSM 03.38** немесе **3GPP 23.038** SMS (қысқа хабарлама қызметі), CB (ұялы хабар тарату) және USSD (құрылымсыз қосымша қызмет деректері) үшін GSM желілерінде қолданылатын таңба кодтауы болып табылады. 3GPP TS 23.038 стандарты (бастапқыда GSM ұсынысы 03.38) GSM телефон тұтқалары мен желі элементтері үшін міндетті болып табылатын **GSM 7-биттік әдепкі әліпбиін** анықтайды  бірақ таңбалар жиыны тек ағылшын тілі мен бірқатар батыс-еуропалық тілдерге ғана жарамды. Қытай, корей немесе жапон сияқты тілдерді 16-биттік UCS-2 таңба кодтауы арқылы тасымалдау керек. Португал, испан, түрік сияқты тілдердің шектеулі саны және Үндістанда брахм жазуымен жазылған бірқатар тілдер 3GPP 23.038-де анықталған *ұлттық тілді ауыстыру кестесімен* 7 биттік кодтауды қолдануы мүмкін. Екілік хабарламалар үшін 8-биттік кодтау қолданылады.

## GSM 7-биттік әдепкі әліпбиі және 3GPP TS 23.038 / GSM 03.38 кестесі
GSM хабарламалары үшін стандартты кодтау 23.038 ұсынысында анықталғандай 7-биттік әдепкі әліпби болып табылады. 

Жеті разрядты таңбалар үш буып-түю режимінің бірінен кейін октеттерге кодталуы керек:

* CBS: ұялы хабар тарату қызметінде бір SMS хабарламасында 93 таңбаға дейін (82 октетке дейін) жіберуге болады.
* SMS: GSM желісінде бір SMS хабарламасында 160 таңбаға дейін (140 октетке дейін) жіберуге болады.
* USSD: құрылымдалмаған қосымша қызмет деректерінің бір SMS хабарламасында 182 таңбаға дейін (160 октетке дейін) жіберуге болады.

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

Негізгі таңбалар жинағы кестесіндегі таңбалар бір септетті, негізгі таңбалар жиынын кеңейту кестесіндегі таңбалар екі септетті алуы маңызды (әсіресе хабарды біріктірілген SMS механизмі арқылы сегменттеу қажет болғанда).

Кестенің екінші бөлігіне GSM құрылғысы ESC таңба префиксін пайдаланып 7-биттік кеңейту механизмін қолдайтын жағдайда ғана қолжетімді болатынын ескеріңіз. Әйтпесе, ESC кодының өзі бос орын ретінде түсіндіріледі және келесі таңба жетекші ESC коды жоқ сияқты қарастырылады.

Кестенің екінші бөлігіне GSM құрылғысы ESC таңба префиксін пайдаланып 7-биттік кеңейту механизмін қолдайтын жағдайда ғана қолжетімді болатынын ескеріңіз. Әйтпесе, ESC кодының өзі бос орын ретінде түсіндіріледі және келесі таңба жетекші ESC коды жоқ сияқты қарастырылады.

Стандартты GSM мәтіндік хабарламасында барлық таңбалар октеттердің барлық биттерін толтыру үшін бірге жинақталған 7-биттік код бірліктері арқылы кодталады. Мысалы, 140 октеттік SMS конверті, басқа тіл индикаторы жоқ, тек стандартты класс префиксі бар, (140*8)/7=160 дейін, яғни 160 GSM 7-бит таңбаларын тасымалдай алады (бірақ кестенің жоғарғы бөлігіндегі таңбалар пайдаланылса, ESC коды олардың біреуі үшін есептелетінін ескеріңіз).

Ұзынырақ хабарламалар жіберілуі мүмкін, бірақ келесі SMS хабарламаларында жалғасты префикс пен реттік нөмір қажет болады (бұл префикс байттары мен реттік нөмір конверт пішімінің 140 октеттік пайдалы жүктемесінің максималды ұзындығында есептеледі).

Хабарламаның соңғы октетінде 1-ден 6-ға дейінгі қосалқы разрядтар болғанда, бұл биттер нөлге орнатылады (бұл разрядтар таңба ретінде есептелмейді, тек толтырғыш ретінде). Хабарламаның соңғы октетінде 7 қосалқы разряд болған кезде, бұл разрядтар нөлге орнатудың орнына CR басқару элементінің 7 разрядтық кодына (сонымен қатар толтырғыш толтырғыш ретінде пайдаланылады) орнатылады (мұнда олар «@» таңбасының 7 биттік кодымен шатастырылады).

Бұл 7 биттік кодтау базалық латын (Unicode блогі) басып шығарылатын таңбалардан тұратын мәтіндерді (негізгі екпін/кері таңбаны қоспағанда), сондай-ақ ISO латын 1 таңбалар жиынының кейбір таңбаларын тасымалдауға мүмкіндік береді. Ол сондай-ақ грек графикасында жазылған мәтіндерді кодтауға мүмкіндік береді, бірақ тек бас әріптермен; Грек тілінде мұндай қолдану үшін грек әріптеріне ұқсайтын латын бас әріптері бірдей кодпен қайта пайдаланылады, сондықтан жоғарыдағы таңбалар жиыны тек бас әріптермен шектелген қазіргі монотонды грек тілі үшін ғана толық болады. Грек алфавитін толық қолдау (кіші әріптерді қоса) ауыстырылған 7-биттік кестенің ұлттық нұсқасын (осы ауыстырылған кестеде кодталған әрбір ұлттық таңба үшін ESC кодын пайдалана отырып) немесе анықталмаған 8-биттік кодтауды немесе UCS-2 кодтауын пайдалануды қажет етеді (төменде қараңыз).

Жоғарыдағы кестеде SS2 деп белгіленген арнайы код басқа балама 7-биттік ауысым кестесін пайдалануға мүмкіндік беру үшін тағайындалғанын (және 0x1B,0x1B ретінде кодталғанын) ескеріңіз. Бірақ бұл механизм ешқашан пайдаланылмаған және UCS-2 кодтауына басымдық берілген.

Unicode ұсынған 0x09 таңбасы (Ç, седильмен бірге C бас әріпі) заманауи іске асыруда ç (седильмен кіші c) таңбасымен ауыстырылуы керек екенін ескеріңіз, себебі бас әріптегі нұсқасы аз қолданылады.

## GSM 8-биттік деректерді кодтау
8-биттік деректерді кодтау режимі ақпаратты бастапқы деректер ретінде қарастырады. Стандартқа сәйкес, бұл кодтаудың алфавиті пайдаланушыға арналған.

## UCS-2 кодтауы
Бұл кодтау таңбалар мен тілдердің кең ауқымын пайдалануға мүмкіндік береді. UCS-2 үлкен кеңістік шығындары есебінен ең жиі қолданылатын латын және шығыс таңбаларын көрсете алады. Қатаң айтқанда, UCS-2 Негізгі көптілді жазықтықтағы таңбалармен шектеледі. Дегенмен, заманауи бағдарламалау орталары UCS-2 үшін кодтауыштарды немесе декодерлерді қамтамасыз етпейтіндіктен, кейбір ұялы телефондар (мысал: iPhone) UCS-2 орнына UTF-16 пайдаланады. Бұл жұмыс істейді, себебі Негізгі көптілді жазықтықтағы таңбалар үшін (соның ішінде қазіргі заманғы адам тілдерінің көпшілігінің толық алфавиттері) UCS-2 және UTF-16 кодтаулары бірдей. Emoji сияқты BMP сыртындағы таңбаларды кодтау үшін (қарапайым UCS-2-де қол жетімсіз), UTF-16 UCS-2 көмегімен декодталғанда екі жарамды, бірақ салыстырылмаған код нүктесі ретінде пайда болатын суррогат жұптарын пайдаланады.

Осы кодтауды пайдаланатын бір SMS GSM хабарламасында ең көбі 70 таңба (140 октет) болуы мүмкін.

Көптеген GSM ұялы телефондарында UCS-2 кодтауының арнайы алдын ала таңдауы жоқ екенін ескеріңіз. Әдепкі бойынша GSM 7-биттік кестесінде жоқ таңба енгізілгенше (мысалы, акутпен кіші 'a': 'á') жоғарыда сипатталған 7-биттік кодтауды пайдалану қажет. Бұл жағдайда бүкіл хабарлама UCS-2 кодтауы арқылы қайта кодталады және бір SMS-те жіберілетін хабарламаның максималды ұзындығы бірден 160 емес, 70 таңбаға дейін қысқарады. Басқалары SMS қолданбасының таңдауы мен конфигурациясына және хабардың ұзақтығына байланысты өзгереді.

Жіберілген SMS-тердің шектеулі бумасына жазылымы бар жіберушілер үшін күтпеген шығындарды болдырмау үшін қолданбалар  пайдаланылған таңбалар санын және құрастырылған SMS-тегі таңбалардың ең көп санын көрсетеді. Хабарлама осы максимумнан асқанда, хабар шығады хабарламаның бөліктерін қамтитын бірнеше дәйекті SMS ретінде жіберіледі (әрқайсысында әр бөлікте бірнеше жетекші таңбалар қолданылатын реттік нөмір бар); бұл бөліктер болуға арналған  алушы кейінірек қайта жинады.

Кейбір қолданбалар пайдаланушыға хабарды бөлуді қажет еткенде ескертеді немесе тіпті ұзағырақ хабарды мультимедиялық хабар (MMS) ретінде жібереді.

## Ұлттық тілдерді ауыстыру кестелері

2008 жылдың наурыз айындағы 3GPP 23.038 стандартының 8-ші шығарылымынан бастап, қосымша таңбалар жиынына Ұлттық тілді ауыстыру кестелерін пайдалану арқылы қол жеткізуге болады.

Бұл кестелер мәтін жазылатын тілге сәйкес әртүрлі таңбалар жиынын пайдалануға мүмкіндік береді. Берілген хабарлама үшін кестені таңдау SMS хабарламасының Пайдаланушы деректерінің тақырыбы бөлімінде таңдалады және бүкіл мәтін үшін (стандартты GSM 7-биттік әдепкі әліпби кестесін ауыстыратын құлыптауды ауыстыру кестесі) немесе бір таңба (GSM 7-биттік әдепкі әліпби кеңейтім кестесін алмастыратын бір ауысым кестесі) үшін көрсетілуі мүмкін. Стандартты әдепкі әліпби кестесі мен әдепкі әліпби кеңейтім кестесінің екеуі де ауыстырылатын болса, бір хабарламада бірге құлыптау және Бір ауысым кестелері мүмкін.

Ауыстыру кестесін пайдаланып, хабар әлі де таңбалар үшін 7-биттік кодтауды пайдалана алады, бірақ екпінді және тілге тән таңбаларды дұрыс көрсету үшін басқа жиынды таңдауға болады. Бұл 136 октетпен кодталған 155 таңбаға дейін мүмкіндік береді (140 октет, ауысым кестесін және тіл кодын пайдалануды көрсету үшін қажет пайдаланушы деректерінің тақырыбының 4 октеттерін алып тастағанда). Құлыптау және Бір ауысым кестелерінің екеуінде де 133 октетпен кодталған 152 таңбаға дейін рұқсат етіледі (140 октет, минус 7 октет пайдаланушы деректерінің тақырыбы).

Кез келген құлыптауды ауыстыру кестесіндегі таңбалар бір септетті, бір ауысым кестесіндегі таңбалар (немесе негізгі таңбалар жиынын кеңейту кестесі) екі септетті алады.

Бастапқыда тек түрік тілі үшін ауысымдық кестелер көрсетілген; 8-шығарылымның кейінгі нұсқаларында испан және португал тілдері қосылды. 9-шығарылымда Үндістанда брахма жазуымен (бенгал, гуджарати, хинди, каннада, малаялам, ория, пенджаби, тамил, телугу) және урду жазуларымен жазылған 10 тіл енгізілді.

Француз, грек, орыс, болгар, араб, иврит және Орталық Еуропа тілдерінің көпшілігі үшін әдепкі 7-биттік стандартты таңбалар жиыны мен оның әдепкі 7-биттік кеңейтім таңбалар жинағынан жақсырақ қамтуды қажет ететін ұлттық тілді ауыстыру кестесі әлі де жоқ: егер GSM 7-биттік әдепкі жиындарда ұсынылмайтын кез келген таңба болса, хабарлама автоматты түрде UCS 2-ден көп ұзындықты пайдалану арқылы қайта кодталады. бір SMS бағасы бойынша жіберуге болатын хабарлардың таңбалары (хабарлама бірнеше бөлікке бөлінгенде, пайдаланушы деректерінің тақырыбында әрбір бөліктің реттік нөмірін көрсету үшін бірнеше басқа октет қажет).

GSM 03.38 (1994 жылдың қыркүйегіндегі 4.0.1 нұсқасында) қайта қарау неміс, ағылшын, итальян, француз, испан, голланд, швед, дат, фин, норвег, грек және түрік тілдеріне арналған ұялы хабар тарату жүйесі (CBS) үшін деректерді кодтау схемасының мәндерін анықтағанымен; Кейінгі түзетулерде венгр, поляк, чех, иврит, араб, орыс және исланд тілдері қосылды, бұл тілдер үшін кодтау кестелері анықталмады. Бұл өрістің мақсаты тек хабардың тілін анықтау болды.

Сондай-ақ негізгі канада жазылған жапон тілінде немесе хангул джамос тілінде жазылған корей тілінде немесе хань жазуында жазылған қытай тілінде тіл ауыстыру кестесі жоқ. Жапонияда бұл жиі проблема емес, себебі ол хабар алмасу үшін GSM және WAP стандарттарынан басқа стандарттарды пайдаланады. Басқа екі тілде де 7-биттік ауысым кестесіне сәйкес келмейтін тым көп ерекше таңбалар бар.

### Испан тілі

Испан тілі үшін арнайы Locking Shift таңбалар жинағы жоқ. Әдепкі негізгі таңбалар жинағын пайдаланады.

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Португал тілі

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Түрік тілі

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Урду тілі (араб және негізгі латын графикасы)
Ол сондай-ақ араб графикасында жазылған синди тілі үшін де қолданылуы мүмкін.

Кейде оны араб тілі үшін де қолдануға болады, бірақ шығыс цифрлары (осы жерде олардың парсы-инду нұсқасында кодталған) бұл жағдайда пайдаланылмайды, себебі стандартты араб өзінің дәстүрлі шығыс араб цифрларын жақсы көреді және жиі Батыс араб цифрларымен ауыстырылады (0x30 бағанындағы құлыптауды ауыстыру таңбасында кодталған), олар қазір урду тілінде де жиі қолданылады. Дегенмен, Үндістанда араб тілінің көрсеткішін танитын телефондар шығыс араб цифрларының парсы-индус нұсқаларын дәстүрлі шығыс араб цифрларымен алмастыруы мүмкін.

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Хинди тілі (Деванагари және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Бенгал және ассам тілдері (бенгал және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Пенджаб тілі (гурмухи және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Гуджарати тілі (гуджарати және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Ория тілі (ория және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Тамил тілі (тамил және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Телугу тілі (телугу және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Каннада тілі (каннада және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

### Малаялам тілі (малаялам және негізгі латын графикасы)

* LF — Line Feed басқару элементі.
* CR – Каретканы қайтаруды басқару немесе толтырғыш.
* ESC — Escape кеңейтім кестесі.
* SP – Бос орын символы.
* FF – бет үзу элементі. Танылмаса, ол LF ретінде қарастырылады.
* CR2 – басқару таңбасы. Бұл позицияда ешқандай тілге тән таңба кодталмайды.
* SS2 – болашақ кеңейтім үшін қосымша Single Shift Escape элементі.

## Дереккөздер

Санат:Ақпараттану
Санат:GSM стандарт
Санат:Кодтау