Dobryj deń! Vitajemo v četver 30 žovtńa 2014 r.

Mapa serwisu

Мова

Język

Strona główna

O serwisie

Informacje o kraju

Kultura i historia

Język

Pierwsze wrażenie

Alfabet

Transkrypcja

Wymowa

Podstawowe zwroty

Skróty

Na komputerze

Windows

Linux/X11

MacOS

Systemy kodowania >

Układy klawiatury

W księgarniach i internecie

Porady

Zbliżenie na…

Wspomnienia

Szlaki

Tablica ogłoszeń

Rozkłady jazdy

Odsyłacze

Do pobrania

Separator

Szukaj…

Separator

ШвидкийЛінк

Co robią w trolejbusach panie w fartuszkach?

kliknij

Separator
Separator

Nasze strony znajdują się na serwerze

starzaki.eu.org

Separator

Valid HTML 4.01

Valid CSS

Separator


odwiedzin od 9.04.2002

Statystyki witryny

Systemy kodowania cyrylicy

W opracowaniu chronologii standardów korzystaliśmy ze strony Romana Czyborry http://czyborra.com/charsets/cyrillic.html. Tam też można znaleźć tabele kodowań, których tutaj nie zamieściliśmy oraz pożyteczne linki.

Najstarszy system kodowania cyrylicy jest zawarty w radzieckiej normie ГОСТ-13052 (ГОСТ - skrót od Государственный стандарт – Państwowa Norma). Był to kod 7-bitowy i polegał na podstawieniu rosyjskich liter na odpowiadające im fonetycznie pozycje w alfabecie łacińskim (А na A, Б na B, Ц na C itd.). Przy tym duży twardy znak opuszczono, gdyż wypadał na pozycji 7F=DEL, a litery Ё w ogóle nie uwzględniono. Aby rozróżnić, czy tekst ma być czytany jako cyrylica czy jako łaciński, przy podstawieniu odwrócono kasztę (duże/małe litery); w ten sposób wiadomo było, że rUSSKIJ to słowo Русский zapisane cyrylicą, a Russian – alfabetem łacińskim. Inną ciekawostką jest fakt, że radzieckie standardy nie miały symbolu dolara – na jego miejscu był tzw. międzynarodowy symbol waluty (¤), występujący zresztą nad 4 w windowsowej polskiej klawiaturze maszynistki.

W 1974 roku w ZSRR wprowadzono nową normę ГОСТ-19768-74, która zawierała dwa standardy nazwane KOI (КОИ – Код для обмена и обработки информации – Kod do Przesyłania i Przetwarzania Informacji). Pochodziły one w prostej linii od normy ГОСТ-13052. Pierwszy z nich, 7-bitowy KOI-7, zawierał na pozycjach 0x20-0x5F zwykłe znaki ASCII, a na dalszych 0x60-0x7E znaki standardu ГОСТ-13052, czyli zawierał tylko duże litery łacińskie i duże litery rosyjskie, oprócz Ё i Ъ. Drugie kodowanie, 8-bitowe KOI-8, na pozycjach 0x20-0x7F miało zwykłe znaki ASCII, a na pozycjach 0xC0-0xF0 znaki cyrylickie standardu ГОСТ-13052 przesunięte o 0x80 z pozycji 0x40-0x7F. Z czasem pojawiły się modyfikacje tego standardu, posiadające literę Ъ na pozycji 0xFF oraz ё i Ё.

W roku 1986 pojawił się draft pierwszej normy międzynarodowej – DIS-8859-5, który w 1987 stał się standardem ISO o oznaczeniu ISO-IR-111, nazywany też ECMA-Cyrillic. Był on oparty na wspomnianych modyfikacjach KOI-8, a na wolnych pozycjach dodał litery alfabetów ukraińskiego, białoruskiego, serbskiego i macedońskiego. Nie było wśród nich jednak ukraińskiego ґ, gdyż litera ta była w ZSRR uznawana za burżuazyjną, a Zachód nie chciał konfliktu o jedną literę.

Tymczasem w roku 1987 w ZSRR normą ГОСТ-19768-87 wprowadzono zupełnie nowy standard, w którym litery małe następowały po dużych, a kolejność była zgodna z cyrylicą. Żeby nie wejść na pozycję 0xFF, wszystko przesunięto o 0x10 w górę. Litery ё i Ё trzeba było umieścić po bokach, bo się nie zmieściły.

Na tejże normie oparło się ISO, wprowadzając w 1988 roku normę ISO-8859-5:1988 (mimo radzieckich protestów, gdyż występował w niej znak dolara; ukraińskiego ґ jednak wciąż nie wprowadzono). Rosyjski standard uzupełniono literami z innych alfabetów cyrylickich podobnie jak w ISO-IR-111, tylko duże litery przeniesiono o wiersz do góry, a małe powędrowały na sam dół. Standard ten nie przyjął się jednak ani na Zachodzie ani w ZSRR i prawie nikt go nie używa.

kod_iso-8859-5.gif

Kodowanie cyrylicy wg standardu ISO-8859-5

W 1992 roku RFC1341 (MIME) przewidziało, że norma ISO-8859-5 powinna być używana jako kodowanie poczty elektronicznej, jednak ponieważ – jak wspomnieliśmy – norma ISO była praktycznie nieużywana, więc w 1993 roku Andriej Czernow w RFC1489 zaproponował standard KOI8-R, pokrywający się z modyfikacjami KOI-8 (ГОСТ-19768-74 z dodanymi ЪЁё), a na wolnych miejscach mający znaki kodowania IBM437 (głównie elementy ramek). To kodowanie długo było jedynym używanym w rosyjskim internecie, a i teraz spotykane jest całkiem często.

kod_koi8-r.gif

Kodowanie KOI8-R

Jak już wspomnieliśmy, w powyższych standardach nie było miejsce na burżuazyjne ґ. Zamiast niej używano macedońskiego miękkiego g (ѓ), ale ostatecznie w 1998 roku opublikowano RFC2319 z nowym standardem KOI8-U, w którym ukraińskie ґ, є, і, ї wprowadzono na miejsce rzadziej używanych ramek (uwaga: samo RFC2319 zawiera kilka pomyłek), przy czym є, і, ї i białoruskie ў znalazły się na pozycjach przewidzianych w ISO-IR-111.

kod_koi8-u.gif

Kodowanie KOI8-U

Ponieważ KOI8-U opiera się na pierwszym stadardzie ГОСТ z jego pomysłem zamiany dużych i małych liter, więc bardzo łatwo jest się zorientować, że przeglądarka mylnie interpretuje KOI8 jako Windows lub odwrotnie – na ekranie mamy wtedy masę dużych liter.

Firma Microsoft na początku lat 90. wprowadziła swój system kodowania w postaci strony kodowej (codepage) 1251. Litery podstawowe zostały umieszczone w 4 ostatnich rzędach, zaś dodatkowe – w sposób dość chaotyczny – wstawione zamiast mniej używanych znaków podstawowej – zachodnioeuropejskiej strony kodowej. Ten system jako jedyny od początku zawierał ukraińskie ґ. Poza tym jest dość wygodny, gdyż zawiera przydatne znaki diakrytyczne, których nie ma w standardach ISO. Dzięki temu można uzyskać prawidłowy ukraiński apostrof ’ (#0146) zamiast '. W tej chwili popularnością przewyższa chyba nawet KOI8, dość powiedzieć, że nawet strona internetowa rosyjskiego urzędu standaryzacji posługuje się kodowaniem Windows-1251 zamiast korzystać z ustalonej przez tęże organizację normy.

kod_windows-1251.gif

Strona kodowa Windows nr 1251

Podobnie swój system kodowania MacCyrillic wprowadził Apple. Wyróżnia się on tym, że małe litery rosyjskie znajdują się w dwóch ostatnich rzędach, duże – w dwóch pierwszych, a między nimi mieszczą się litery z pozostałych alfabetów cyrylickich oraz znaki pomocnicze; małe я przeniesiono z „niebezpiecznej” pozycji 0xFF. Nas interesuje późniejsza odmiana tego kodowania, MacUkrainian, w której dodano literę ґ.

kod_x-mac-ukrainian.gif

Strona kodowa MacUkrainian

Jeszcze wcześniej swoje strony kodowe opracował IBM. Weszły one do powszechnego użytku w systemach operacyjnych DOS różnych firm. IBM855 jest standardem wcześniejszym i zawiera litery wszystkich europejskich alfabetów cyrylickich, przy czym uporządkowane po łacińsku i w dziwnej przemiennej kolejności mała litera – duża litera – mała litera itd.; również ta strona kodowa nie zawiera ґ. Natomiast IBM866 zawiera litery rosyjskie – najpierw duże, potem małe – a na końcu ukraińskie i białoruskie (bez ґ), uporządkowane w rzędach zgodnie z kolejnością cyrylicką; ten standard w Rosji znany był pod nazwą Альтернативный вариант (Altiernatiwnyj waryant).

kod_ibm855.gif

Strona kodowa IBM nr 855

kod_ibm866.gif

Strona kodowa IBM nr 866

Ostatnio coraz większą popularność zaczyna zdobywać Unicode – system kodowania mający ambicję objąć wszystkie systemy pisarskie świata (również historyczne). Kodowanie Unicode jest regulowane przez normę ISO-10646. Znaki cyrylicy są kodowane na pozycjach 0x0400-0x04FF, przy czym pierwsza połowa (0x0400-0x047F) to znaki używane obecnie lub w przeszłości w oryginalnych alfabetach cyrylickich, natomiast druga połowa zawiera znaki stworzone dla potrzeb innych języków używanych w imperium rosyjskim, a później w ZSRR (kazaskiego, azerskiego, mołdawskiego, licznych dialektów kaukaskich i innych).

Unicode nie rozróżnia grażdanki od oryginalnej cyrylicy. Dlatego nie przewiduje ona dodatkowych znaków na dawne litery, które dzisiaj już nie istnieją w oryginale, ale występują w zmodyfikowanej postaci – m. in. я (pochodzące ze znaku 0x0467 ‘ę’, dawniej ‘ja’ było oznaczane przez połączone іа) i ы (dawne połączone ъı, a nie ьı). Takie podejście ma swoje dobre strony, gdyż tekst napisany w starej cyrylicy można przełożyć na grażdankę jedynie zmieniając czcionkę. Z drugiej strony w ten sposób różne graficznie znaki mają taki sam kod, ale jest to zgodne z ogólną tendencją przejawiającą się w Unicodzie, który ma np. jeden kod na znak „L z haczykiem” i „L z apostrofem” jako że są to dwie formy tej samej słowackiej litery.

Kolejność znaków w pierwszej połowie obszaru kodowego jest prawie identyczna z normą ISO-8859-5, a więc: duże litery grażdanki nierosyjskie (w kolejności, w jakiej występują w swoich alfabetach), duże litery grażdanki rosyjskie (w kolejności cyrylickiej), małe litery grażdanki rosyjskie, małe litery grażdanki nierosyjskie. Dalej następują litery oryginalnej cyrylicy niemające odpowiedników w obecnie używanych alfabetach, na przemian duże i małe. Niestety również Unicode nosi piętno zimnej wojny: ukraińskie ґ nie znajduje się w zasadniczej, lecz w dodatkowej części obszaru kodowego, mimo, że znalazłoby się dlań miejsce w tej pierwszej.

Na razie Unicode nie przewiduje przyznania kodów akcentowanym znakom cyrylickim, chociaż takie były używane w oryginalnej cyrylicy, a i dzisiaj są szeroko stosowane w edukacji. Należy zadowolić się łączeniem dwóch znaków, która to praktyka jest zresztą w Unicodzie oficjalnie przewidziana. Jest tu jednak pewna niekonsekwencja, gdyż w alfabecie łacińskim dano dwie możliwości kodowania: albo pojedynczy kod, albo kod znaku podstawowego + kod znaku diakrytycznego. Unicode zawiera również znaki starogreckie z akcentami (0x1F00-0x1FFF), więc czemu nie miałby zawierać analogicznych cyrylickich? Być może w przyszłości doczekamy się cyrylicy z akcentami, gdyż Unicode wciąż się wzbogaca o nowe zestawy znaków.

kod_unicode_0400-04FF.gif

Przestrzeń kodowa Unicode zarezerwowana dla cyrylicy

Na koniec podajemy oznaczenia stosowane w internecie (nagłówkach poczty i stron www). Windows-1251 nie jest zarejestrowanym oznaczeniem MIME, co nie przeszkadza mu być szeroko stosowanym i rozpoznawanym przez programy pocztowe i przeglądarki; podobnie oba kodowania MacIntosha. Gwiazdką oznaczyliśmy nazwy zwyczajowe, nie mogące być stosowane w praktyce.

Oznaczenie

Oznaczenie alternatywne

Opis kodowania

Alfabety słowiańskie inne niż rosyjski i bułgarski (1)

Alfabet ukraiński

Alfabety niesło-
wiańskie

iso-8859-5

iso-ir-144

Zgodne z normą międzynarodową ISO-8859-5

tak

oprócz ґ

nie

windows-1251

cp1251

Microsoft dla Windows

tak

tak

nie

koi8-r

Pochodne od KOI-8, standard de facto

nie

nie

nie

koi8-u

Pochodne od KOI-8, standard de facto

nie

tak

nie

ibm855

cp855

Opracowane przez IBM, używane w systemie DOS

tak

oprócz ґ

nie

ibm866

cp866

Opracowane przez IBM, używane w systemie DOS

nie

oprócz ґ

nie

ecma-cyrillic

iso-ir-111

Pochodne od KOI-8, międzynarodowe stare

tak

oprócz ґ

nie

x-mac-cyrillic

MacCyrillic*

Apple dla Macintosh/MacOS

tak

oprócz ґ

nie

x-mac-ukrainian

MacUkrainian*

Apple dla Macintosh/MacOS

tak

tak

nie

utf-8

Unicode*

Specyficzny sposób zapisu kodów Unicode

tak

tak

tak

(1) Serbski, macedoński, białoruski, ukraiński.

Zobacz też…

Pokrewne strony  Alfabet

Powiązane odsyłacze  wyświetl

do góry

© 2000-2003 Redakcja suputnyk.site.pl. Wszelkie prawa zastrzeżone, przedruk wyłącznie za zgodą redakcji. Prosimy zapoznać się z zastrzeżeniem.
Kodowanie: Unicode UTF-8. Kliknij tu, jezeli strony nie wyswietlaja sie poprawnie. Kontakt w sprawach technicznych: webmaster(at)suputnyk.site.pl.
Plik źródłowy: jezyk/komputer/kodowanie.xml [utworzony: 25.04.2002 zmodyfikowany: 5.03.2003 20.25].