Добрий вечір! Вітаємо в понеділок 22 грудня 2014 р.

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

ШвидкийЛінк

Zobacz, co możesz od nas ściągnąć…

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].