ISO/IEC 8859‑8
ISO/IEC 8859‑8 (czasami określany po prostu jako ISO‑8859‑8) jest ósmą częścią serii standardów ISO/IEC 8859 definiujących jednowyrazowe zestawy znaków (ang. single‑byte character sets) dla różnych grup językowych. Standard ten przeznaczony jest do kodowania alfabetu hebrajskiego oraz znaków niezbędnych do zapisu języków używających tego pisma.
Historia
Prace nad serią ISO/IEC 8859 rozpoczęły się pod auspicjami ISO i IEC w latach 80. XX wieku, mając na celu ujednolicenie 8‑bitowych kodowań znaków w różnych regionach świata. Projekt ISO/IEC 8859‑8 został zatwierdzony w 1988 roku, a publikacja oficjalna nastąpiła w 1999 roku w wersji zaktualizowanej.
Zakres i przeznaczenie
- Obsługa alfabetu hebrajskiego (litery od
U+05D0doU+05EA). - Znaki diakrytyczne i znaki interpunkcyjne używane w językach semickich.
- Podstawowy zestaw znaków łacińskich (ang. ASCII) w kodach 0x00‑0x7F.
- Znaki kontroli oraz kilka symboli graficznych (np.
©,®).
Warianty
W praktyce rozróżnia się dwa warianty kodowania:
- ISO‑8859‑8‑E – „European” (domyślny). W tym wariancie znaki interpunkcyjne pozycjonowane są tak, jak w większości zachodnich zestawów 8859.
- ISO‑8859‑8‑I – „Logical” (czasem określany po prostu jako ISO‑8859‑8). Tu znaki hebrajskie są kodowane w kolejności naturalnej (od prawej do lewej), co ułatwia ich późniejszą konwersję do Unicode.
Mapa znaków
| Hex | Unicode | Opis |
|---|---|---|
| 0xA0 | U+00A0 | Niełamiąca spacja |
| 0xA1 | U+00A1 | Odwrócony wykrzyknik |
| 0xA2 | U+00A2 | Znak waluty (cent) |
| 0xA3 | U+00A3 | Znak funta |
| … | … | … |
| 0xC0–0xDF | U+05D0–U+05EF | Litery hebrajskie (od alef do tav) |
| 0xE0–0xFA | U+05F0–U+05FA | Znaki pomocnicze i cyfry hebrajskie |
| 0xFF | U+00A0 | Niełamiąca spacja (powtórzenie) |
Implementacja i wsparcie
Większość nowoczesnych systemów operacyjnych i bibliotek programistycznych (np. Unicode, ICU, Python czy Java) udostępnia konwersję pomiędzy ISO‑8859‑8 a Unicode (UTF‑8, UTF‑16). W praktyce jednak użycie tego kodowania maleje na rzecz Unicode, który obsługuje znacznie szerszy zakres znaków.
Porównanie z innymi standardami
Poniższa tabela ukazuje różnice pomiędzy ISO‑8859‑8 a popularnymi kodowaniami dla języka hebrajskiego:
| Standard | Jednostka kodowa | Zakres znaków | Uwagi |
|---|---|---|---|
| ISO/IEC 8859‑8 | 8‑bitowy | Hebrajski + ASCII | Ograniczony do znaków podstawowych |
| Windows‑1255 | 8‑bitowy | Hebrajski + niektóre znaki diakrytyczne | Używany w starszych systemach Windows |
| UTF‑8 | 8‑bitowy (zmienny) | Pełny zestaw Unicode | Obecny standard internetowy |
Zastosowania
ISO‑8859‑8 był szeroko stosowany w:
- Dokumentach tekstowych i e‑mailach w latach 90. i wczesnych 2000‑s.
- Starszych wersjach systemów operacyjnych (Windows 95/98, Mac OS 9).
- Niektórych protokołach internetowych, np. w nagłówkach MIME (
charset=ISO-8859-8).
Obecnie, ze względu na powszechną dostępność Unicode, ISO‑8859‑8 występuje głównie w kontekstach legacy.
Powiązane artykuły
- Seria ISO/IEC 8859
- Unicode
- Hebrajski – alfabet i język
- Kodowanie tekstowe
- MIME – typy mediów i zestawy znaków
Spis treści
- Historia
- Zakres i przeznaczenie
- Warianty
- Mapa znaków
- Implementacja i wsparcie
- Porównanie z innymi standardami
- Zastosowania
Historia
Standard został opracowany w odpowiedzi na rosnące zapotrzebowanie na jednobajtowe kodowanie hebrajskiego w stałym (8‑bitowym) formacie, które mogło współpracować z istniejącymi systemami opartymi na ASCII. Pierwsza wersja pojawiła się w 1988 roku, a późniejsze aktualizacje (np. w 1999 r.) wprowadzały korekty graficznych znaków oraz definicję wariantów E i I.
Zakres i przeznaczenie
W kodzie 0x00‑0x7F zachowane są wszystkie znaki z zestawu ASCII, co zapewnia kompatybilność wsteczną. W części 0xA0‑0xFF znajdują się znaki specyficzne dla języka hebrajskiego oraz kilka symboli typowych dla zachodnich zestawów 8859.
Warianty
W praktyce najczęściej używany jest wariant Logical (ISO‑8859‑8‑I), który odpowiada kolejności naturalnej znaków hebrajskich. Wariant Visual (ISO‑8859‑8‑E) dopasowuje pozycję znaków do tradycyjnych wyświetlaczy, które renderują tekst od lewej do prawej.
Mapa znaków
Pełną tabelę znaków można znaleźć w dedykowanym artykule.
Implementacja i wsparcie
Współczesne języki programowania udostępniają aliasy pozwalające na odczyt i zapis danych w tym kodowaniu, np. w Pythonie:
text = b'\xE0\xE1\xE2'.decode('iso-8859-8')
Porównanie z innymi standardami
W przeciwieństwie do Windows‑1255, ISO‑8859‑8 nie zawiera znaków specjalnych używanych w językach arabskich czy perskich, co czyni go węższym, ale jednocześnie bardziej precyzyjnym dla czystego hebrajskiego.
Zastosowania
Choć dziś dominują rozwiązania oparte na Unicode, ISO‑8859‑8 pozostaje ważnym elementem dziedzictwa informatycznego, szczególnie przy migracji starszych baz danych i archiwów.