ISO‑8859‑5
ISO‑8859‑5 (znany także jako Latin/Cyrillic) jest jedną z części serii standardów ISO/IEC 8859 opracowaną w latach 1990‑1995. Standard definiuje jednobajtowy zestaw znaków przeznaczony do kodowania tekstów w językach używających cyrylicy, w szczególności w Rosji, Ukrainie, Białorusi, Bułgarii, Serbii oraz w kilku innych krajach Europy Wschodniej i Azji Środkowej.
Historia i opracowanie
W odpowiedzi na rosnące zapotrzebowanie na jednolite zestawy znaków w regionie, w 1995 roku podjęto prace nad rozszerzeniem serii ISO‑8859, które do tej pory obejmowały jedynie zestawy oparte na alfabecie łacińskim. Projekt ISO‑8859‑5 został przyjęty przez ISO w grudniu 1999 i opublikowany jako część serii ISO‑8859‑1‑ISO‑8859‑16.
Zakres znaków
Podobnie jak pozostałe części serii, ISO‑8859‑5 jest kodowaniem jednobajtowym, co oznacza, że każdy znak jest reprezentowany przez jeden bajt (8 bitów). Pierwsze 128 kodów (00‑7F) pokrywa się z ASCII, a pozostałe 128 kodów (80‑FF) zawiera znaki cyrylicy oraz dodatkowe symbole interpunkcyjne, cyfry i litery diakrytyczne.
| Hex | Unicode | Symbol | Opis |
|---|---|---|---|
| 80 | U+0402 | Ђ | Cyrylica, duże „dje” (serb.) |
| 81 | U+0403 | Ѓ | Cyrylica, duże „gje” (macedońskie) |
| 82 | U+0404 | Є | Cyrylica, duże „je” (ukraińskie) |
| 83 | U+0405 | Ѕ | Cyrylica, duże „dze” (macedońskie) |
| 84 | U+0406 | І | Cyrylica, duże „i” (ukraińskie) |
| 85 | U+0407 | Ї | Cyrylica, duże „ji” (ukraińskie) |
| 86 | U+0408 | Њ | Cyrylica, duże „nje” (serb.-chorwackie) |
| 87 | U+0409 | Љ | Cyrylica, duże „lje” (serb.-chorwackie) |
| 88 | U+040A | Њ | Cyrylica, duże „nj” (macedońskie) |
| 89 | U+040B | Ћ | Cyrylica, duże „ć” (serbskie) |
| 8A | U+040C | Ќ | Cyrylica, duże „k’’” (macedońskie) |
| 8B | U+040E | Ў | Cyrylica, duże „u” (białoruskie) |
| 8C | U+040F | Џ | Cyrylica, duże „dz” (serb.-chorwackie) |
| 8D | U+0410 | А | Cyrylica, duże „A” |
| 8E | U+0411 | Б | Cyrylica, duże „B” |
| ... | ... | ... | ... |
| F9 | U+0459 | љ | Cyrylica, małe „lje” |
| FA | U+045A | њ | Cyrylica, małe „nj” |
| FB | U+045B | ћ | Cyrylica, małe „ć” |
| FC | U+045C | ќ | Cyrylica, małe „k’’” |
| FD | U+00A7 | § | Znak paragrafu |
| FE | U+045E | ў | Cyrylica, małe „u” (białoruskie) |
| FF | U+045F | џ | Cyrylica, małe „dz” |
Porównanie z innymi kodowaniami
- ISO‑8859‑1 – przeznaczony dla języków zachodnioeuropejskich, używa alfabetu łacińskiego.
- KOI8‑R – popularny w Rosji kodowanie cyrylicy, różni się rozmieszczeniem znaków.
- Windows‑1251 – kodowanie stosowane w systemach Microsoft, zawiera dodatkowe znaki dla języka bułgarskiego.
- Unicode – unifikowany wieloznakowy standard, w tym UTF‑8, który obejmuje wszystkie znaki ISO‑8859‑5 oraz wiele innych.
Użycie i wsparcie
ISO‑8859‑5 był szeroko stosowany w latach 1990‑2000 w dokumentacji technicznej, bazach danych i systemach operacyjnych, zwłaszcza w aplikacjach biurowych i przy wymianie e‑maili w krajach byłego Związku Radzieckiego. Z czasem został stopniowo wypierany przez Unicode, a w szczególności przez UTF‑8, ze względu na możliwość kodowania wszystkich języków w jednym zestawie.
Kompatybilność i konwersja
Większość nowoczesnych środowisk programistycznych (np. Python, Java, C#) udostępnia wbudowane funkcje do konwersji między ISO‑8859‑5 a Unicode. Przykładowo, w Pythonie można dokonać konwersji tak:
bytes_iso = b'\xd0\xcf' # ciąg w ISO‑8859‑5
unicode_str = bytes_iso.decode('iso-8859-5')
print(unicode_str) # wyświetli „Р” (cyrylica „R”)
Patenty i dostępność
Standard ISO‑8859‑5 jest publikowany w ramach ISO i jest dostępny w domenie publicznej. Nie istnieją ograniczenia patentowe, co ułatwia jego implementację w darmowym oprogramowaniu.
Powiązane artykuły
- Seria ISO/IEC 8859
- Unicode – Uniwersalny System Kodowania Znaków
- Cyrylica – alfabet słowiański
- KOI8‑R – rosyjskie kodowanie znaków
- Windows‑1251 – kodowanie cyrylicy dla systemu Windows
- UTF‑8 – zmienna długość kodowania Unicode
Standard ISO‑8859‑5 pozostaje ważnym elementem historii kodowania znaków, ilustrującym przejście od jednorodnych, językowo ograniczonych zestawów znaków do wszechstronnych rozwiązań opartych na Unicode.