ISO 8859
ISO 8859 — это международный стандарт кодирования символов, разработанный Международной организацией по стандартизации (ISO). Он представляет собой набор 8-битных кодировок, предназначенных для представления текстов на различных языках мира, использующих латинский алфавит и его расширения. Каждая часть стандарта (ISO 8859-1, ISO 8859-2 и т. д.) определяет кодировку для определённой группы языков или регионов.
История
Разработка стандарта ISO 8859 началась в 1980-х годах, когда потребность в универсальной системе кодирования символов стала очевидной. Существовавшие на тот момент 7-битные кодировки (например, ASCII) не могли охватить все символы, необходимые для европейских языков, а многочисленные проприетарные 8-битные кодировки (например, CP437, CP1252) были несовместимы друг с другом. В 1985 году была опубликована первая часть стандарта — ISO 8859-1 (Latin-1), которая стала основой для многих последующих разработок. Стандарт был разработан подкомитетом ISO/IEC JTC 1/SC 2. В 1990-х годах стандарт был расширен до 15 частей, охватывающих большинство языков на основе латиницы, кириллицы, греческого, арабского и иврита. С развитием Unicode в 1990-х годах, который обеспечивает единую кодировку для всех письменностей, актуальность ISO 8859 постепенно снизилась, однако он по-прежнему используется в устаревших системах, некоторых протоколах и при работе с текстами, не требующими полной поддержки Unicode.
Структура и принцип кодирования
Каждая часть стандарта ISO 8859 представляет собой 8-битную кодировку, в которой первые 128 кодовых позиций (0x00–0x7F) соответствуют ASCII. Вторая половина таблицы (0x80–0xFF) содержит дополнительные символы, специфичные для данной части. Это позволяет кодировать до 128 дополнительных символов сверх ASCII, что достаточно для большинства европейских языков, но недостаточно для языков с большим количеством символов (например, китайского или японского).
Основные части стандарта
| Часть | Название | Языки и регионы | Ключевые особенности |
|---|---|---|---|
| ISO 8859-1 | Latin-1 | Западноевропейские языки (английский, французский, немецкий, испанский, итальянский и др.) | Наиболее распространённая часть. Включает символы для большинства западноевропейских языков. |
| ISO 8859-2 | Latin-2 | Центральноевропейские языки (польский, чешский, словацкий, венгерский, румынский и др.) | Включает дополнительные символы для языков с диакритическими знаками. |
| ISO 8859-3 | Latin-3 | Южноевропейские языки (мальтийский, турецкий, эсперанто) | Содержит символы для языков, не охваченных Latin-1 и Latin-2. |
| ISO 8859-4 | Latin-4 | Северноевропейские языки (эстонский, латышский, литовский, гренландский и др.) | Включает символы для балтийских и скандинавских языков. |
| ISO 8859-5 | Latin/Cyrillic | Языки с кириллической письменностью (русский, украинский, белорусский, болгарский, сербский и др.) | Содержит кириллические символы, соответствующие порядку в русском алфавите. |
| ISO 8859-6 | Latin/Arabic | Арабский язык | Содержит арабские буквы и некоторые дополнительные символы. |
| ISO 8859-7 | Latin/Greek | Греческий язык | Содержит греческие буквы и диакритические знаки. |
| ISO 8859-8 | Latin/Hebrew | Иврит | Содержит буквы иврита и некоторые дополнительные символы. |
| ISO 8859-9 | Latin-5 | Турецкий язык | Замена ISO 8859-3 для турецкого языка. |
| ISO 8859-10 | Latin-6 | Северноевропейские языки (дополнение) | Расширение ISO 8859-4 для языков, не охваченных ранее. |
| ISO 8859-11 | Latin/Thai | Тайский язык | Содержит тайские буквы и символы. |
| ISO 8859-13 | Latin-7 | Балтийские языки (литовский, латышский) | Дополнение к ISO 8859-4. |
| ISO 8859-14 | Latin-8 | Кельтские языки (ирландский, шотландский, валлийский) | Содержит символы для кельтских языков. |
| ISO 8859-15 | Latin-9 | Западноевропейские языки (обновление) | Замена ISO 8859-1. Включает символ евро (€) и некоторые другие. |
| ISO 8859-16 | Latin-10 | Южноевропейские языки (румынский, албанский, хорватский и др.) | Содержит символы для языков, не охваченных Latin-2. |
Неутверждённые части
Некоторые части стандарта были разработаны, но не получили статуса международного стандарта. К ним относятся:
- ISO 8859-12 (Latin/Devanagari) — не была завершена.
- ISO 8859-13 (Latin-7) — была утверждена как часть стандарта, но изначально планировалась как другая кодировка.
Применение
Стандарт ISO 8859 широко использовался в 1990-х и начале 2000-х годов в операционных системах, веб-страницах, электронной почте и текстовых редакторах. Наиболее распространённой частью была ISO 8859-1 (Latin-1), которая стала основой для кодировки Windows-1252 (CP1252) от Microsoft. В России и странах СНГ для кириллицы часто использовалась ISO 8859-5, а также кодировка Windows-1251.
С развитием Unicode, который обеспечивает единую кодировку для всех письменностей, использование ISO 8859 сократилось. Однако он по-прежнему применяется:
- В устаревших системах: Многие старые базы данных, файловые системы и протоколы (например, HTTP, SMTP) могут использовать ISO 8859.
- В некоторых протоколах: Например, протокол передачи гипертекста (HTTP) по умолчанию использует ISO 8859-1 для содержимого, если не указана другая кодировка.
- В текстовых редакторах: Некоторые старые текстовые редакторы (например, Notepad в Windows) поддерживают ISO 8859.
- В веб-страницах: Хотя Unicode (UTF-8) стал стандартом для веба, многие старые сайты всё ещё используют ISO 8859.
Ограничения и критика
Основные недостатки стандарта ISO 8859:
- Ограниченный набор символов: Каждая часть может кодировать только 128 дополнительных символов, что недостаточно для языков с большим количеством символов (например, китайского, японского, корейского).
- Несовместимость между частями: Тексты, закодированные в одной части, не могут быть прочитаны в другой без перекодировки.
- Отсутствие поддержки некоторых языков: Стандарт не охватывает многие языки мира, такие как индийские, африканские, языки Юго-Восточной Азии.
- Устаревание: С появлением Unicode, который решает все эти проблемы, ISO 8859 стал менее актуальным.
Связь с другими стандартами
- ASCII: ISO 8859 полностью совместим с ASCII в первых 128 кодовых позициях.
- Windows-1252: Кодировка Microsoft, основанная на ISO 8859-1, но с некоторыми отличиями в диапазоне 0x80–0x9F.
- Unicode: Unicode (UTF-8, UTF-16, UTF-32) является надмножеством ISO 8859, но не совместим с ним напрямую. Для преобразования между ISO 8859 и Unicode используются таблицы соответствия.
Интересные факты
- Стандарт ISO 8859-1 (Latin-1) был основой для кодировки, используемой в первых версиях HTML.
- В России и странах СНГ для кириллицы часто использовалась кодировка Windows-1251, которая была разработана на основе ISO 8859-5, но с некоторыми отличиями.
- Некоторые части стандарта, такие как ISO 8859-6 (арабский) и ISO 8859-8 (иврит), поддерживают только буквы и не включают диакритические знаки, что затрудняет их использование для некоторых языков.
Источники
- ISO/IEC 8859-1:1998. Information technology — 8-bit single-byte coded graphic character sets — Part 1: Latin alphabet No. 1.
- ISO/IEC 8859-2:1999. Information technology — 8-bit single-byte coded graphic character sets — Part 2: Latin alphabet No. 2.
- ISO/IEC 8859-5:1999. Information technology — 8-bit single-byte coded graphic character sets — Part 5: Latin/Cyrillic alphabet.
- ISO/IEC 8859-15:1999. Information technology — 8-bit single-byte coded graphic character sets — Part 15: Latin alphabet No. 9.
- RFC 1345. Character Mnemonics and Character Sets. 1992.
- Unicode Consortium. The Unicode Standard, Version 15.0. 2022.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →