ISO/IEC 8859‑5
ISO/IEC 8859‑5 (czasami określany po prostu jako ISO‑8859‑5) jest jedną z serii 8‑bitowych zestawów znaków opracowanych wspólnie przez ISO i IEC. Standard ten przeznaczony jest do kodowania alfabetu cyrylicznego stosowanego w językach słowiańskich i nie‑słowiańskich, m.in. w języku rosyjskim, ukraińskim, białoruskim, bułgarskim, macedońskim oraz serbskim (w wersji cyrylicznej).
Geneza i opracowanie
Podstawy techniczne serii ISO/IEC 8859 zostały sfinalizowane w 1987 r., a poszczególne warianty pojawiały się w kolejnych latach. Wersja 5, dedykowana cyrylicy, została przyjęta w 1988 roku i od tego czasu pełniła rolę podstawowego kodowania w wielu systemach operacyjnych oraz aplikacjach biurowych, zanim została w dużej mierze wyparta przez Unicode i jego formy kodowania UTF‑8 oraz UTF‑16.
Struktura kodowania
ISO/IEC 8859‑5 jest jednobajtowym zestawem znaków (każdy znak zajmuje dokładnie 8 bitów). Pierwsze 128 kodów (0x00‑0x7F) jest identyczne z ASCII, natomiast górna półka 0xA0‑0xFF zawiera znaki cyryliczne oraz kilka dodatkowych symboli.
| Hex | Kod Unicode | Symbol / Litera | Opis |
|---|---|---|---|
| A0 | U+00A0 | niełamiąca spacja | |
| A1 | U+040E | Ў | Cyrylica – mała litera „U krótkie” (białoruski) |
| A2 | U+045E | ў | Cyrylica – wielka litera „U krótkie” (białoruski) |
| A3 | U+0404 | Є | Cyrylica – wielka litera „E ukraińskie” |
| A4 | U+0454 | є | Cyrylica – mała litera „e ukraińskie” |
| A5 | U+0407 | Ї | Cyrylica – wielka litera „Yi” (ukraiński) |
| A6 | U+0457 | ї | Cyrylica – mała litera „yi” (ukraiński) |
| A7 | U+0401 | Ё | Cyrylica – wielka litera „Yo” (rosyjski) |
| A8 | U+0402 | Ђ | Cyrylica – wielka litera „Dje” (serbski) |
| A9 | U+0403 | Ѓ | Cyrylica – wielka litera „Gje” (macedoński) |
| AA | U+0404 | Є | Cyrylica – wielka litera „E ukraińskie” |
| AB | U+0405 | Ѕ | Cyrylica – wielka litera „Dze” (macedoński) |
| AC | U+0406 | І | Cyrylica – wielka litera „I” (ukraiński) |
| AD | U+0407 | Ї | Cyrylica – wielka litera „Yi” (ukraiński) |
| AE | U+0408 | Ј | Cyrylica – wielka litera „Je” (serbski) |
| AF | U+0409 | Љ | Cyrylica – wielka litera „Lje” (serbski) |
| B0 | U+040A | Њ | Cyrylica – wielka litera „Nje” (serbski) |
| B1 | U+040B | Ћ | Cyrylica – wielka litera „Tse” (serbski) |
| B2 | U+040C | Ќ | Cyrylica – wielka litera „Kje” (macedoński) |
| B3 | U+040D | Ѝ | Cyrylica – wielka litera „I grave” (bułgarski) |
| B4 | U+040E | Ў | Cyrylica – wielka litera „U krótkie” (białoruski) |
| B5 | U+040F | Џ | Cyrylica – wielka litera „Dzhe” (serbski) |
| B6 | U+0410 | А | Cyrylica – wielka litera „A” |
| ... | Pozostałe kody od 0xB6 do 0xFF zawierają pełny zestaw wielkich i małych liter cyrylicy oraz niektóre znaki interpunkcyjne i matematyczne. | ||
Porównanie z innymi odmianami ISO/IEC 8859
- ISO/IEC 8859‑1 – „Latin‑1”, używany w zachodniej Europie;
- ISO/IEC 8859‑2 – „Latin‑2”, obejmujący języki środkowo‑europejskie;
- ISO/IEC 8859‑3 – „Latin‑3”, przeznaczony dla południowej Europy;
- ISO/IEC 8859‑4 – „Latin‑4”, skierowany do języków bałtyckich;
- ISO/IEC 8859‑5 – jedyny wariant zawierający pełny alfabet cyrylicy.
Zastosowania praktyczne
Standard był szeroko wykorzystywany w następujących obszarach:
- systemy operacyjne – m.in. MS‑DOS, Windows 95/98/ME oraz wczesne wersje Linuksa (lokalizacje
ru_RU.iso88595); - oprogramowanie biurowe – Microsoft Office do wersji 2003, OpenOffice.org oraz LibreOffice;
- protokoły internetowe – niektóre starsze serwery poczty elektronicznej (
Content‑Type: text/plain; charset=ISO-8859-5) i aplikacje FTP; - aplikacje wbudowane – urządzenia konsumenckie sprzed połowy lat 2000, w których ograniczona pamięć wymuszała jednobajtowe kodowanie.
Wsparcie w systemach współczesnych
Choć Unicode stał się de facto standardem globalnym, wiele środowisk nadal udostępnia konwersję z/na ISO/IEC 8859‑5:
- iconv – biblioteka konwersji znaków (dostępna w glibc);
- systemy baz danych – MySQL i PostgreSQL umożliwiają definiowanie kolumny o kodowaniu
latin5(alias ISO‑8859‑5); - przeglądarki internetowe – obsługa meta‑tagu
<meta charset="ISO-8859-5">w trybie kompatybilności.
Relacja z Unicode i UTF‑8
Każdy znak w ISO/IEC 8859‑5 ma jednoznaczną reprezentację w Unicode – jest to po prostu mapowanie kodu 0xA0‑0xFF na odpowiedni punkt kodowy U+00A0‑U+045F. Dzięki temu konwersja między kodowaniem a UTF‑8 (lub UTF‑16) jest trywialna i zwykle realizowana przez jednopunktowy przegląd tabeli mapowań.
Ograniczenia
- Jedynie cyrylica – brak wsparcia dla dodatkowych znaków używanych w nowoczesnych językach (np. litery „ґ”, „ӣ”, znaki diakrytyczne używane w języku tatar).
- Brak kodowania znaków spoza zakresu 0x00‑0xFF – niemożliwe jest reprezentowanie symboli matematycznych czy emoji.
- Trudności w mieszanej treści – dokumenty zawierające jednocześnie tekst łaciński i cyrylicę wymagały przełączania kodowań lub użycia Unicode.
Zobacz także
Bibliografia
- ISO/IEC 8859‑5:1999 – Information technology – 8‑bit single‑byte coded graphic character sets – Part 5: Cyrillic.
- „Historia kodowań tekstowych” – publikacja w Encyklopedii Informatyki, 2005.
- Unicode Consortium – „Unicode Standard, Version 14.0”, rozdział „Compatibilty with ISO 8859‑5”.