encyklopedia.space

ISO‑8859

ISO‑8859 (pełna nazwa ISO/IEC 8859) to rodzina ośmiobitowych zestawów znaków opracowanych w latach 1985–1995 pod auspicjami Międzynarodowej Organizacji Normalizacyjnej (ISO) i Międzynarodowej Komisji Elektrotechnicznej (IEC). Zostały stworzone jako rozszerzenie kodu ASCII o dodatkowe znaki potrzebne do zapisu języków zachodnio‑europejskich oraz niektórych innych grup językowych.

Historia i rozwój

Wcześniej, przed standaryzacją serii ISO‑8859, w komputerach używano licznych, często niekompatybilnych zestawów znaków (np. CP437, ISO‑8859‑1 już w pierwszych wersjach). W 1987 roku grupa ISO/IEC JTC 1/SC 2 przyjęła pierwszą część serii – ISO‑8859‑1 (znaną również jako Latin‑1). W kolejnych latach powstały kolejne części, każda dedykowana innym językom i regionom:

  • ISO‑8859‑1 – języki zachodnioeuropejskie (angielski, niemiecki, francuski, hiszpański, włoski, portugalski, skandynawskie).
  • ISO‑8859‑2 – języki środkowoeuropejskie (polski, czeski, słowacki, węgierski, rumuński).
  • ISO‑8859‑3 – języki śródziemnomorskie (turecki, maltański, języki bałkańskie).
  • ISO‑8859‑4 – języki bałtyckie (estoński, łotewski, litewski).
  • ISO‑8859-5 – cyrylica (rosyjski, bułgarski, serbski).
  • ISO‑8859‑6 – arabski.
  • ISO‑8859-7 – grecki.
  • ISO‑8859-8 – hebrajski.
  • ISO‑8859-9 – języki tureckie (poprawiona wersja ISO‑8859‑1, usuwająca niektóre znaki na rzecz liter tureckich).
  • ISO‑8859-10 – języki północnoskandynawskie.
  • ISO‑8859-11 – tajski.
  • ISO‑8859-13 – języki bałtyckie i polski (alternatywa dla ISO‑8859‑2).
  • ISO‑8859-14 – języki celtyckie (irlandzki, walijski, bretoński).
  • ISO‑8859-15 – tzw. Latin‑9, rozszerzenie ISO‑8859‑1 o znak € oraz niektóre brakujące litery.
  • ISO‑8859-16 – języki południowosłowiańskie i rumuński.

Struktura techniczna

Każdy zestaw ISO‑8859 składa się z 256 kodów (0‑255). Pierwsze 128 pozycji (0‑127) są identyczne ze standardem ASCII. Druga połowa (128‑255) zawiera znaki specyficzne dla danej części, m.in. litery z akcentami, znaki interpunkcyjne, symbole walut oraz litery niełacińskie.

Mapa kodowa

Poniżej przedstawiono przykładową mapę kodową dla ISO‑8859‑2 (polskiego i środkowoeuropejskiego wariantu):

00–1F  kontrolne ASCII
20–7E  drukowalne ASCII
A0–FF  znaki rozszerzone (np. Ą – 0xA1, Ć – 0xC6, Ł – 0xA3, Ś – 0x8C, Ż – 0xAF)
    

Znaczenie i zastosowanie

W latach 1990‑2000 zestawy ISO‑8859 były dominujące w systemach operacyjnych, przeglądarkach internetowych i edytorach tekstu. Z czasem zostały one w dużej mierze wypierane przez jednolity standard Unicode, który umożliwia jednoczesne kodowanie tysięcy znaków z różnych systemów pisma.

Mimo to wiele starszych aplikacji i baz danych wciąż używa konkretnych wariantów ISO‑8859, co wymusza na programistach obsługę tak zwanych legacy encodings. Przykłady:

  • Systemy pocztowe w Europie Środkowej często domyślnie używają ISO‑8859‑2.
  • Strony internetowe publikowane przed rokiem 1998 w wielu krajach używały ISO‑8859‑1 jako domyślnego zestawu znaków.
  • W niektórych regionach Azji Południowo‑Wschodniej (np. Tajlandia) nadal można spotkać ISO‑8859‑11.

Powiązane standardy

Warto wymienić kilka standardów, które współistnieją lub są bezpośrednio powiązane z ISO‑8859:

  • ISO‑8859‑15 – tzw. Latin‑9, wprowadzony w 1999 roku, zawiera znak euro (€).
  • Windows‑1252 – popularny w systemach Microsoft rozszerzenie ISO‑8859‑1.
  • UTF‑8 – kodowanie zmiennoprzecinkowe w ramach Unicode, kompatybilne z ASCII i coraz częściej zastępujące ISO‑8859.
  • ISO‑2022 – zestaw standardów umożliwiających przełączanie pomiędzy różnymi zestawami znaków w jednym strumieniu danych.

Współczesny status

Obecnie ISO‑8859 jest uznawany za przestarzały w nowych projektach, ale pozostaje oficjalnym standardem opisanym w dokumencie ISO/IEC 8859. Jego wersje są nadal wymieniane w specyfikacjach protokołów (np. SMTP, HTTP) jako dopuszczalne kodowania treści.

Patrzenia dalsze

Przyszłość kodowań jednowyrazowych (single‑byte) jest ściśle związana z potrzebą kompatybilności w środowiskach dziedziczących po starszych systemach. Dlatego zrozumienie struktury i zastosowań ISO‑8859 jest kluczowe dla:

  • migracji danych do Unicode,
  • rozwiązywania problemów z wyświetlaniem znaków w starszych aplikacjach,
  • dokumentacji i standaryzacji w systemach przemysłowych i medycznych, które często używają ustalonych od lat kodowań.

Podsumowując, seria ISO‑8859 była przełomowym rozwiązaniem w historii informatyki, które przez kilkadziesiąt lat umożliwiało jednolite kodowanie tekstu w wielu językach zachodnio‑ i środkowoeuropejskich oraz niektórych innych regionach świata.