ISO/IEC 8859‑11
ISO/IEC 8859‑11 – jedyna część serii ISO/IEC 8859 przeznaczona do kodowania znaków języka tajskiego. Standard ten definiuje 8‑bitowy zestaw znaków, który jest rozszerzeniem ASCII o dodatkowe znaki niezbędne do zapisu języka tajskiego.
Historia
W latach 1990–1993 w wyniku rosnącego zapotrzebowania na komputerowe przetwarzanie tekstu w Tajlandii, opracowano kodowanie Thai‑8, które później zostało przyjęte jako międzynarodowy standard ISO/IEC 8859‑11. Standard został oficjalnie opublikowany w 1999 roku przez ISO i IEC.
Zakres normy
- Definicja 256 kodów bajtowych (0‑255). Kody 0‑127 są zgodne z ASCII.
- Kody 128‑255 zawierają znaki tajskie, cyfry arabskie, znaki interpunkcyjne oraz niektóre symbole typograficzne.
- Standard nie definiuje znaków sterujących (np.
CR,LF) – pozostają one zgodne z ASCII. - Zawiera także znaki non‑spacing marks (znaki diakrytyczne) używane w języku tajskim, które muszą być renderowane w połączeniu z poprzedzającą literą.
Struktura kodów
| Zakres | Opis | Przykładowe znaki |
|---|---|---|
| 0‑127 | Standardowy zestaw ASCII | A, B, C, 0‑9, punctuation |
| 160‑191 | Znaki tajskie – spółgłoski | ก (ko kai), ข (kho khai), … |
| 192‑207 | Znaki tajskie – samogłoski | ะ (sara a), ิ (sara i), … |
| 208‑239 | Znaki tajskie – znaki diakrytyczne (non‑spacing marks) | ั (mai han‑akat), ั (mai ek), … |
| 240‑255 | Dodatkowe symbole i znaki specjalne | ©, ®, €, ฿ (baht) |
Powiązania z innymi standardami
ISO/IEC 8859‑11 jest ściśle powiązany z następującymi standardami:
- Unicode – wszystkie znaki ISO/IEC 8859‑11 mają bezpośrednie odpowiedniki w bloku Thai (U+0E00–U+0E7F). Najczęściej kodowanie to UTF‑8, które jest kompatybilne wstecz z ISO/IEC 8859‑11.
- ISO/IEC 8859‑1 (tzw. Latin‑1) – jedyny inny członek serii, który zawiera jedynie znaki zachodnioeuropejskie; ISO/IEC 8859‑11 jest jedyną częścią serii dedykowaną językowi azjatyckiemu.
- Windows‑874 – popularna odmiana kodowania tajskiego w systemie Windows, różniąca się niektórymi pozycjami znaków od ISO/IEC 8859‑11.
Zastosowanie
Chociaż od początku XXI wieku dominują rozwiązania oparte na Unicode, ISO/IEC 8859‑11 wciąż jest wykorzystywane w:
- Starszych systemach operacyjnych i bazach danych w Tajlandii.
- Urządzeniach wbudowanych (np. kioski, drukarki fiskalne) z ograniczoną pamięcią.
- Eksportowaniu i wymianie danych w formacie CSV, gdzie prostota 8‑bitowego kodowania jest ceniona.
Implementacja w językach programowania
Większość nowoczesnych języków posiada wbudowaną obsługę ISO/IEC 8859‑11 poprzez biblioteki kodowania znaków. Przykłady:
- Python:
bytes.decode('iso-8859-11')istr.encode('iso-8859-11'). - Java:
Charset.forName("ISO-8859-11"). - PHP: funkcje
iconv()orazmb_convert_encoding().
Kontrowersje i ograniczenia
ISO/IEC 8859‑11 nie zawiera wszystkich znaków używanych w nowoczesnym języku tajskim, m.in. nie ma wsparcia dla niektórych znaków typograficznych i znaków kontrolnych używanych w systemach telekomunikacyjnych. Dlatego w praktyce często preferuje się Unicode, który zapewnia pełną kompatybilność.
Patrz także
Bibliografia
- International Organization for Standardization. ISO/IEC 8859‑11:1999 – Information technology – 8‑bit single‑byte coded graphic character sets – Part 11: Thai.
- Unicode Consortium. The Unicode Standard, Version 15.0, sekcja “Thai”.
- J. K. Lee, M. S. H. Wong. Character Encoding for Asian Languages, 2002.