Next Previous Contents

2. Teoreticheskoe obosnovanie

2.1 Simvoly i kodirovki

CHtoby ponimat' i pechatat' simvoly razlichnyh yazykov, sistema i programmnoe obespechenie dolzhna byt' sposobna otlichit' ih ot drugih simvolov. To est' kazhdyj unikal'nyj simvol dolzhen imet' unikal'noe predstavlenie vnutri operacionnoj sistemy, ili specificheskogo paketa programm. Takaya sovokupnost' vseh unikal'nyh simvolov, kotorye sistema sposobna predstavit' srazu, nazyvaetsya kodirovkoj.

Vo vremya sozdaniya bol'shinstva operacionnyh sisteme, nikto ne pozabotilsya predusmotret' vozmozhnost' predstavleniya informacii v programmah na drugih yazykah, otlichnyh ot anglijskogo. Poetomu, naibolee populyarnoj kodirovkoj byla (i fakticheski ej i ostaetsya) ASCII (Amerikanskij Standartnyj Kod dlya Informacionnogo Obmena).

Standart ASCII (ili ASCII s 7mi bitami) vklyuchaet v sebya 128 unikal'nyh kodov. Oni podrazdelyayutsya na simvoly, kotorye ASCII opredelyaet kak, sobstvenno, pechataemye simvoly, i na tak nazyvaemye, simvoly upravleniya, kotorye imeli special'nye znacheniya v staryh protokolah svyazi. Kazhdyj element nabora identificirovan celochislennym simvol'nym kodom (0-127). Podmnozhestvo pechataemyh simvolov predstavlyayut te, kotorye nahodyat na klaviature pishushchej mashinki s nekotorymi nekotorymi dobavleniyami. Kazhdyj simvol zanimal 7 mladshih znachimyh bitov bajta, togda kak starshij razryad ispol'zovalsya dlya celej upravleniya (to est', dlya upravleniya peredachi v staryh paketah svyazi).

Koncepciya ASCII s 7mi bitami byla rasshirena do ASCII s 8 bitami (ili rasshirennogo ASCII). V etoj kodirovke, diapazon simvolov sootvetstvuet kodam ot 0 do 255. Mladshie bity (0-127) - chistyj ASCII, v to vremya kak starshij razryad dobavlyaet eshche 127 simvolov. Tak kak eta kodirovka obratno sovmestima s ASCII (simvol vse eshche zanimaet 8 bit, i kody polnost'yu sootvetstvuyut staromu ASCII), eta kodirovka stal shiroko ispol'zovat'sya.

Standart ASCII s 8 bitami ne opredelyaet soderzhanie verhnej poloviny tablicy kodirovki. Poetom MEZHDUNARODNAYA ORGANIZACIYA PO STANDARTIZACII (ISO) vzyala otvetstvennost' po opredeleniyu semejstva standartov, izvestnyh kak ISO 8859-X semejstvo. |to semejstvo est' sovokupnost' 8mi bitnyh kodirovok, gde mladshaya polovina kazhdoj kodirovki (simvoly s kodami 0-127) sootvetstvuet ASCII, a starshaya polovina opredelyaet simvoly dlya razlichnyh yazykov. Naprimer, sleduyushchie kodovye stranicy opredeleny dlya:

V Latin 1, starshaya polovina tablicy opredelyaet razlichnye simvoly, kotorye - ne yavlyayutsya chast'yu Anglijskogo alfavita, no prisutstvuet v razlichnyh evropejskih yazykah (nemeckie umlauts, francuzskie diakriticheskie znaki i t.d).

Drugaya populyarnaya realizaciya rasshirennogo ASCII - eto tak nazyvaemaya kodovaya stranica IBM (nazvannaya po imeni komp'yuternoj kompanii, kotoraya sozdala etu kodirovku dlya svoih personal'nyh komp'yuterov). |ta kodirovka v starshej polovine soderzhit psevdo - graficheskie simvoly.

Programmnoe obespechenie, kotoroe ne delaet nikakih predpolozhenij o simvolah ispol'zuyushchih 8-oj bit ASCII dannyh, nazyvaetsya chisto 8mi bitnymi. Nekotorye bolee starye programmy, razrabotannye dlya ASCII s 7 bitami v pamyati, a ne dlya chistyh 8mi bit mogut rabotat' nepravil'no s vashimi rasshirennymi ASCII dannymi. Bol'shinstvo paketov, odnako, sposobny rabotat' s rasshirennym ASCII po umolchaniyu, ili dlya etogo trebuetsya prostaya perekonfiguraciya. Podobnye, prostejshie programmy, trebuyushchie kakoj-libo nastrojki v etom dokumente ne rassmatrivayutsya. Vmesto etogo ya sfokusiroval svoi usiliya na bolee slozhnyh paketah.

Dlya informacii o tom kak sozdavat' svoe chisto 8mi bitnoe programmnoe obespechenie smotrite razdel Locale zavisimoe programmirovanie.

Tak kak v bol'shinstve sistem simvoly opisyvayutsya 8yu bitami, to net nikakogo sposoba rasshirit' ASCII eshche bol'she. Sposob sozdaniya novyh simvolov v ASCII - eto prosto sozdanie drugih rasshirennyh ASCII realizacij. S pomoshch'yu etogo sposoba kirillica i byla vvedena v ASCII.

My uzhe upomyanuli standart ISO 8859-5 kak tot, v kotorom opredelyaetsya kodirovki dlya kirillicy. No poskol'ku (kak eto chasto sluchaetsya so standartami), on byl razrabotan bez prinyatiya vo vnimanie real'nyh processov prohodyashchih v SSSR (kogda eto eshche bylo), to edinstvennoe, chto bylo dejstvitel'no dostignuto s vvedeniem etot standart, tak eto tol'ko uvelichenie besporyadka s kodirovkami kirillicy. V to vremya kak, v soobshchestve Internet ochen' populyarna kodirovka KOI8-R (sm. nizhe), ISO 8859-5 ispol'zuetsya bol'shimi kompaniyami, sozdayushchimi programmnoe obespechenie s vozmozhnost'yu obrabotki kirillicheskoj informacii, takoe kak bol'shie bazy dannyh, resheniya osnovannye na baze OpenVMS i t.d.

Drugie standarty dlya kirillicy vklyuchayut, tak nazyvaemuyu, Alt kodirovku i kodovuyu stranicu Microsoft CP1251. Vysheupomyanutyj Alt standart byl razrabotan nashej "lyubimoj" kompaniej dlya MS-DOS dovol'no davno. Togda eshche slyhom ne slyhivali pro seti iz IBM PC i poetomu osnovnoe usilie sostoyalo v tom, chtoby sdelat' etot standart nastol'ko naskol'ko eto vozmozhno sovmestimym s IBM standartom. Poetomu Alt kodirovka - eto ta samaya IBM kodovaya stranica, gde vse specificheskie evropejskie simvoly v verhnej polovine byli zameneny na kirillicu, ostavlyaya psevdograficheskie simvoly netronutymi. Sledovatel'no, eto ne portilo vid programm ispol'zuyushchih dlya raboty tekstovye okna i takzhe obespechilo simvoly kirillicy v nih. Alt standart vse eshche zhiv i chrezvychajno populyaren v srede MS-DOS.

Microsoft CP1251 kodovaya stranica - eto popytka Microsoft pridumat' novyj standart dlya kodirovki kirillicy v Windows. Naskol'ko ya znayu, eto ne sovmestimo s chem libo eshche (i ne udivitel'noe, tri Ha-Ha)

Nu i nakonec: KOI-8 standart. V otlichii ot Alt i CP1251 on byl razrabotan dovol'no davno dlya UNIX mashin. Tak kak UNIX znachit set', to osnovnoj idej pri sozdaniya KOI-8 standarta byla ideya ob obespechenii peremeshcheniya kirillicheskoj informacii po seti.

Eshche raz vernemsya v dalekoe proshloe. Obychno vse rabotali tol'ko so standartnym (7mi bitnym) ASCII. 8oj bit kazhdogo simvola ukazyval na to, chto on ili upravlyayushchij simvol, libo prosto musor. Obychno nikto ne slal dannye chisto 8mi bitnymi (kazhdyj norovil ottyapat' 8oj bit u simvolov). Razrabotchiki KOI8 primenili ochen' produmannyj podhod. Oni pomestili kirillicheskie simvoly v verhnej chasti rasshirennoj ASCII tablicy, takim obrazom, chto pozicii kirillicheskih simvolov sootvetstvuyut ih foneticheskim analogam v anglijskom alfavite v nizhnej chaste tablicy. |to oznachaet, chto, esli v tekste, napisannom v KOI-8, my ubiraem vos'moj bit kazhdogo simvola, to my vse eshche imeem "chitabel'nyj" tekst, hotya on i napisan anglijskimi simvolami!

Ne udivitel'no, chto KOI8-R bystro stal fakticheski standartom dlya kirillicy v Internet. Andrej A. CHernov prodelal ogromnyj ob®em raboty, chtoby sozdat' standart. On - avtor RFC 1489 ("Registration of a Cyrillic Character Set").

Sushchestvuyut takzhe i drugie standarty, kotorye otlichny ot ASCII i gorazdo bolee horosho adaptiruemy. Naibolee izvestnyj iz nih eto Unicode. Odnako, eti standarty poka ne prizhilis' v Unix voobshche i v Linux v chastnosti. YA ne opisyvayu ih zdes'.


Next Previous Contents