encyklopedia.space

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+05D0 do U+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
0xA0U+00A0Niełamiąca spacja
0xA1U+00A1Odwrócony wykrzyknik
0xA2U+00A2Znak waluty (cent)
0xA3U+00A3Znak funta
………
0xC0–0xDFU+05D0–U+05EFLitery hebrajskie (od alef do tav)
0xE0–0xFAU+05F0–U+05FAZnaki pomocnicze i cyfry hebrajskie
0xFFU+00A0Nieł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‑88‑bitowyHebrajski + ASCIIOgraniczony do znaków podstawowych
Windows‑12558‑bitowyHebrajski + niektóre znaki diakrytyczneUżywany w starszych systemach Windows
UTF‑88‑bitowy (zmienny)Pełny zestaw UnicodeObecny 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

Spis treści

  1. Historia
  2. Zakres i przeznaczenie
  3. Warianty
  4. Mapa znaków
  5. Implementacja i wsparcie
  6. Porównanie z innymi standardami
  7. 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.