ISO‑8859‑2
ISO‑8859‑2, znany także jako Latin‑2 lub Central European, jest 8‑bitowym zestawem znaków opracowanym w ramach serii standardów ISO/IEC 8859. Służy do kodowania znaków używanych w językach środkowej i wschodniej Europy, w szczególności w polskim, czeskim, słowackim, węgierskim, słoweńskim, serbskim (łaciński) i innych.
Historia
Prace nad serią ISO‑8859 rozpoczęły się w latach 1985, a projekt ISO‑8859‑2 został ostatecznie przyjęty w 1992 roku. Standard powstał jako odpowiedź na potrzebę jednego zestawu znaków, który obejmowałby wszystkie alfabetu języków środkowo‑europejskich, które w tamtym czasie były kodowane przy pomocy wielu niekompatybilnych stron kodowych.
Charakterystyka
- Rozmiar: 8 bitów (256 kodów).
- Zakres kodów 0‑127: identyczny z ASCII, co zapewnia kompatybilność z podstawowymi tekstami anglojęzycznymi.
- Zakres kodów 128‑255: zawiera znaki diakrytyczne i dodatkowe litery potrzebne w językach środkowo‑europejskich.
- Kompatybilność: nie jest kompatybilny z ISO‑8859‑1 (Latin‑1) – niektóre pozycje w zakresie 128‑255 są różne.
Struktura zestawu znaków
Poniżej przedstawiono wycinek tabeli znaków ISO‑8859‑2 (kod szesnastkowy – znak Unicode):
| Kod (hex) | Unicode | Znak | Opis |
|---|---|---|---|
| A0 | U+00A0 | spacja nierozdzielająca | |
| A1 | U+0104 | Ą | duża litera A z ogonkiem |
| A2 | U+02D8 | ˘ | znak kratki (breve) |
| A3 | U+0141 | Ł | duża litera Ł |
| A4 | U+00A4 | ¤ | symbol waluty |
| A5 | U+013D | Ľ | duża litera L z haczykiem |
| A6 | U+015A | Ś | duża litera S z akcentem |
| A7 | U+00A7 | § | znak paragrafu |
| A8 | U+00A8 | ¨ | kropka powyżej (diaeresis) |
| A9 | U+0160 | Š | duża litera S z haakiem |
| FF | U+02DD | ˝ | podwójny akcent (double acute) |
Zastosowanie
Przez lata ISO‑8859‑2 był szeroko wykorzystywany w:
- systemach operacyjnych typu Unix i Linux w wersjach przed 1998 r.,
- aplikacjach biurowych, np. starszych wersjach Microsoft Office,
- serwerach WWW w latach 1990‑2000, zanim Unicode stał się de facto standardem,
- bazach danych i systemach wymiany danych (np. protokół SMTP z kodowaniem
ISO-8859-2).
Porównanie z innymi kodowaniami
| Kodowanie | Zakres językowy | Kompatybilność z ASCII | Różnice względem ISO‑8859‑2 |
|---|---|---|---|
| ISO‑8859‑1 | Europa Zachodnia | pełna | zawiera znaki zachodnio‑europejskie, brak niektórych liter środkowoeuropejskich (np. Ą, Ł) |
| Windows‑1250 | Środkowa Europa (Microsoft) | pełna | różne mapowanie w 0x80‑0x9F; nieco inny zestaw diakrytyków |
| Unicode (UTF‑8) | Wszystkie języki świata | pełna (pierwsze 128 znaków) | zmienna długość kodowania; pełna kompatybilność z ISO‑8859‑2 po konwersji |
Przejście na Unicode
Od początku dwóch tysięcy roku większość nowych projektów programistycznych i systemów operacyjnych przyjmuje Unicode (najczęściej w formie UTF‑8) jako domyślne kodowanie. Dzięki temu eliminuje się potrzebę rozróżniania wielu 8‑bitowych zestawów znaków, w tym ISO‑8859‑2. W praktyce konwersja pomiędzy ISO‑8859‑2 a Unicode jest prosta, a w większości bibliotek programistycznych dostępne są gotowe mapowania.
Implementacje i wsparcie
Standard ISO‑8859‑2 jest obsługiwany przez wszystkie główne języki programowania i biblioteki:
- Python – moduł
codecs(codecs.decode(b'...', 'iso-8859-2')) - Java –
Charset.forName("ISO-8859-2") - C/C++ – biblioteka
iconv - HTML i XML – deklaracja
<meta charset="ISO-8859-2">
Podsumowanie
ISO‑8859‑2 odegrał kluczową rolę w ujednoliceniu sposobu zapisu tekstu w językach środkowo‑europejskich w erze przed‑Unicode. Choć dziś jest już rzadko używany, pozostaje ważnym elementem historii informatyki i wciąż można natrafić na jego obecność w starszych systemach oraz w archiwach cyfrowych.
Powiązane artykuły: ISO‑8859‑1, Unicode, UTF‑8, Windows‑1250, język polski, język czeski, język węgierski.