The Cyrillic HOWTO: 2. Znaki i zestawy znaków
Następna strona
Poprzednia strona
Spis treści
2. 2. Znaki i zestawy znaków
Ażeby zrozumieć i wyświetlać znaki różnych języków, system i programy
muszą być zdolne odróżniać je od innych znaków. To jest, każdy pojedynczy
znak musi mieć odrębną reprezentację wewnątrz systemu operacyjnego, bądź
konkretnego pakietu programów. Taka kolekcja wszystkich odrębnych znaków
które jakiś system jest w stanie reprezentować w danym momencie nazywa
się zestawem znaków.
W czasie tworzenia największych systemów operacyjnych nikt nie dbał o to
aby programy były wielojęzyczne. Dlatego też najpopularniejszym zestawem
znaków był (i ciągle jest) ASCII (American Standard Code for Information
Interchange).
Standardowy ASCII (aka siedmiobitowy ASCII) zawiera 128 odrębnych kodów.
Niektóre z nich ASCII definiuje jako faktyczne drukowalne znaki, a niektóre
są tak zwanymi znakami kontrolnymi, które posiadały specjalne znaczenia
w starszych protokołach komunikacyjnych. Każdy element zestawu identyfikuje
kod będący liczbą całkowitą (0-127). Podzbiór znaków drukowalnych
przedstawia te które znaleźć można na klawiaturze maszyny do pisania, z
niewielkimi dodatkami. Każdy znak zajmuje siedem najmniej znaczących bitów
bajtu, podczas gdy najbardziej znaczący używany był dla celów kontrolnych
(np. kontroli transmisji w starszych pakietach komunikacyjnych).
Koncepcję ASCII siedmiobitowego rozszerzył ASCII ośmiobitowy (aka
rozszerzony ASCII). W tym zestawie zakres kodów znaków to 0-255. Dolna
połowa (0-127) to czysty ASCII, podczas gdy górna zawiera 127 dodatkowych
znaków. Ponieważ zestaw ten jest wstecznie kompatybilny z ASCII (znak
ciągle zajmuje osiem bitów, kody odpowiadają staremu ASCII), zyskał
on sobie szeroką popularność.
ASCII ośmiobitowe nie definiuje zawartości górnej połówki zestawu. Dlatego
ISO powzięło zadanie ustalenia rodziny standardów znanych jako rodzina
ISO-8859-X. Jest to zbiór kodowań ośmiobitowych, w których niższa połowa
każdego kodowania (0-127) odpowiada ASCII, a wyższa definiuje znaki dla
różnych języków. Zdefiniowano na przykład następujące kodowania:
8859-1 - Europa Zachodnia, Ameryka Łacińska (znany też jako Latin 1)
8859-2 - Europa Środkowa i Wschodnia
8859-5 - cyrylica
8859-8 - hebrajski
W Latin 1 górna połowa tabeli definiuje różne znaki które nie są częścią
alfabetu angielskiego, ale znajdują się w różnych językach
zachodnioeuropejskich (umlauty niemieckie, akcenty francuskie).
Programy które nie zakładają nic co do ósmego bitu danych ASCII zwane
są ośmiobitowo czystymi. Niektóre starsze programy, napisane z myślą o
ASCII 7-bitowym, nie są czyste ośmiobitowe i mogą działać niepoprawnie
z danymi ośmiobitowymi. Większość jednak pakietów domyślnie radzi sobie
z ośmiobitowym ASCII, albo wymaga bardzo prostego ustawienia.
UWAGA: zanim wyślesz pytanie "Wszystko ustawiłem poprawnie, a nie mogę
wprowadzać/oglądać znaków cyrylicowych!", zajrzyj do sekcji 8 co do
uwag o programie którego używasz.
Ponieważ na większości systemów ASCII zajmuje osiem bitów, nie ma już
możliwość aby ciągle je rozszerzać. Sposobem na zaimplementowanie nowych
symboli w kodowaniach opartych na ASCII jest stworzenie innej implementacji
rozszerzonego ASCII. W taki właśnie sposób zaimplementowane zostało
kodowanie cyrylicy w ASCII.
Wspomnieliśmy już o standardzie ISO-8859-5 jako określającym kodowanie
cyrylicy. Lecz jak to często bywa ze standardami, stworzono go nie biorąc
pod uwagę istniejącej praktyki w byłym ZSRR. Jedyną więc rzeczą jaką
ten standard osiągnął było spotęgowanie zamieszania. Nie powiedziałbym
że gdzieś się znacząco używa ISO-8859-5.
Innymi standardami kodowania cyrylicy są tak zwane kodowanie Alt i
strona kodowa 1251 Microsoftu. Ta pierwsza stworzona została (przez kogo?)
dość dawno temu na potrzeby MS-DOS. W tamtych czasach nie było jeszcze
tego całego szumu o internetowaniu, intencją więc było uczynienie jej
jak najbardziej kompatybilnej ze standardem IBM. Dlatego kodowanie Alt
jest w rzeczywistości stroną kodową IBM, gdzie wszystkie specjalne znaki
europejskie w górnej połówce zastąpiono cyrylicznymi, z wyłączeniem
pseudografiki. Nie rujnowało to łatwego tworzenia okienek i dawało także
znaki cyrylicowe. Standard Alt ciągle żyje i jest niesłychanie popularny
w świecie MS-DOSa.
Strona kodowa 1251 to po prostu próba Microsoftu pokazania nowego standardu
dla kodowania cyrylicy w Windows. Na ile wiem, nie jest ona kompatybilna
z czymkolwiek (niezbyt dziwne, co?)
I w końcu istnieje KOI-8. Jest ono również stare, ale zaprojektowano je
mądrze i dzisiaj założenia tego projektu wyglądają naprawdę użytecznie.
I znów, jest ono kompatybilne z ASCII, a znaki cyrylicy umieszczone są
w górnej połówce. Lecz głównym założeniem projektowania KOI-8 jest to że
pozycje znaków cyrylicy muszą odpowiadać znakom angielskim o zbliżonej
wymowie. Konkretnie, jeśli ustawimy ósmy bit w angielskim 'a', dostaniemy
'a' cyrylicowe. Oznacza to że jeśli mamy tekst pisany cyrylicą w KOI-8,
możemy uciąć ósmy bit z każdego znaku i dalej mieć czytelny tekst. Bardzo
to dzisiaj ważne, ponieważ w Internecie jest wiele węzłów pocztowych które
po prostu po cichu obcinają ósmy bit, pewne że wszyscy na całej Ziemi mówią
po angielsku.
Nic dziwnego że KOI-8 szybko stał się de facto standardem dla cyrylicy
w Internecie. Andriej A. Czernow poczynił ogromne nakłady pracy aby
ustalić w tym obszarze standard. Jest on autorem RFC 1489 ("Registration
of a Cyrillic character set").
Te dwa standardy [Alt i KOI-8] różnią się tylko pozycjami znaków
cyrylicowych w tabeli (to jest kodami znaków cyrylicowych)/
Główną różnicą jest to że kodowanie Alt używane jest tylko przez
użytkowników MS-DOS, podczas gdy KOI-8 używane jest w Unixie, a także
w MS-DOSie (chociaż w tym drugim jest znacznie mniej popularne).
Ponieważ robimy to co trzeba (to znaczy pracujemy w systemie Unixowym)
skupimy się głównie na KOI-8.
Co do standardu ISO, jest on bardziej popularny jako standard cyrylicy.
w Europie i USA. W Rosji zdecydowanie przoduje KOI-8.
Istnieją i inne standardy, różne od ASCII i o wiele bardziej elastyczne.
Najbardziej znanym jest Unicode. Nie są jednak one zaimplementowane
tak dobrze jak te podstawowe w Unixie w ogólności i Linuxie w
szczególności. Dlatego też nie będę ich tu opisywał.
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
Cyrillic HOWTO pl 4 (2)Cyrillic HOWTO pl 1 (2)Cyrillic HOWTO plCyrillic HOWTO pl 6 (2)Cyrillic HOWTO pl 10 (2)cyrillic howto plCyrillic HOWTO pl 5 (2)cyrillic howto pl 3Cyrillic HOWTO pl 9 (2)Cyrillic HOWTO pl 7 (2)Cyrillic HOWTO pl (2)bootdisk howto pl 8PPP HOWTO pl 6 (2)NIS HOWTO pl 1 (2)cdrom howto pl 1jtz howto pl 5Keystroke HOWTO pl (2)PostgreSQL HOWTO pl 14więcej podobnych podstron