Открыть сервис

ISO 8859-5

ISO 8859-5 — это стандарт кодировки символов (часть семейства ISO 8859), разработанный Международной организацией по стандартизации (ISO) для представления текстов на кириллице. Он предназначен для языков, использующих кириллический алфавит, включая русский, украинский, белорусский, болгарский, сербский, македонский и другие. Стандарт был опубликован в 1988 году и формально известен как ISO/IEC 8859-5:1999 (последняя редакция). Кодировка представляет собой 8-битную однобайтовую схему, где первые 128 кодов (0x00–0x7F) соответствуют ASCII, а оставшиеся 128 кодов (0x80–0xFF) отведены под кириллические символы и дополнительные знаки.

История и разработка

Разработка ISO 8859-5 началась в 1980-х годах, когда возникла потребность в универсальной кодировке для кириллицы, совместимой с ASCII и пригодной для международного обмена данными. До этого кириллические тексты кодировались различными проприетарными системами (например, КОИ-8, CP866, MacCyrillic), что затрудняло совместимость между разными платформами и странами. ISO 8859-5 был создан как часть серии ISO 8859, которая включает 15 частей (от 1 до 16, с пропуском 12), каждая из которых охватывает определённые группы языков.

Стандарт был утверждён в 1988 году как ISO 8859-5:1988, а затем пересмотрен в 1999 году (ISO/IEC 8859-5:1999). Он базируется на кириллическом алфавите, используемом в основном в Восточной Европе и на постсоветском пространстве. В отличие от более ранних кодировок, таких как КОИ-8, которые были оптимизированы для русского языка, ISO 8859-5 стремился охватить все основные кириллические символы, необходимые для славянских и неславянских языков (например, для казахского, таджикского, монгольского).

Структура и таблица символов

ISO 8859-5 использует 8-битное кодирование, где каждый символ занимает один байт. Коды от 0x00 до 0x7F полностью совпадают с ASCII (латиница, цифры, знаки препинания, управляющие символы). Коды от 0x80 до 0x9F зарезервированы для управляющих символов (C1), хотя в некоторых реализациях они могут использоваться для графических символов. Коды от 0xA0 до 0xFF содержат кириллические буквы, знаки препинания и дополнительные символы.

Основные диапазоны:

  • 0xA0: неразрывный пробел (NBSP).
  • 0xA1–0xAF: знаки препинания и символы (например, №, §, ©, ®).
  • 0xB0–0xCF: прописные кириллические буквы (А–Я, включая Ё на позиции 0xB0).
  • 0xD0–0xEF: строчные кириллические буквы (а–я, включая ё на позиции 0xD0).
  • 0xF0–0xFF: дополнительные символы (например, буквы для украинского, белорусского, сербского: Ї, Ў, Є, Ґ, а также знаки валют и математические символы).

Пример таблицы (частично):

Код (hex)СимволОписание
0xB0АПрописная кириллическая А
0xB1БПрописная кириллическая Б
0xD0аСтрочная кириллическая а
0xD1бСтрочная кириллическая б
0xE0рСтрочная кириллическая р
0xF0Знак номера

Важно: буква Ё (ё) в ISO 8859-5 находится на позициях 0xB0 (прописная) и 0xD0 (строчная), что отличается от других кириллических кодировок, где она часто отсутствует или размещается в другом месте.

Применение и распространение

ISO 8859-5 был разработан для использования в операционных системах, протоколах передачи данных и текстовых файлах, где требовалась международная совместимость. Он применялся в ранних версиях Unix, некоторых базах данных и системах электронной почты (например, в MIME-типе text/plain; charset=ISO-8859-5). В 1990-х годах стандарт использовался в веб-страницах и документах, особенно в странах Восточной Европы.

Однако ISO 8859-5 не получил широкого распространения в России и на постсоветском пространстве по нескольким причинам:

  • Конкуренция с КОИ-8: Кодировка КОИ-8 (особенно КОИ-8R) была более популярна в русскоязычном интернете и Unix-системах благодаря лучшей совместимости с ASCII и сохранению читаемости текста при потере старшего бита.
  • Проблемы с буквой Ё: В ISO 8859-5 буква Ё занимает позицию 0xB0, что совпадает с символом «°» (градус) в некоторых других кодировках, вызывая путаницу.
  • Ограниченная поддержка: Многие программы и устройства (например, DOS, Windows) предпочитали собственные кодировки, такие как CP866 и Windows-1251.
  • Переход на Unicode: С появлением Unicode (UTF-8) в конце 1990-х годов необходимость в однобайтовых кодировках отпала, и ISO 8859-5 стал вытесняться.

Тем не менее, стандарт остаётся частью официальных спецификаций ISO и используется в некоторых устаревших системах, а также в академических и архивных целях.

Сравнение с другими кириллическими кодировками

ISO 8859-5 vs Windows-1251

Windows-1251 (CP1251) — кодировка, разработанная Microsoft для Windows, стала доминирующей в России и СНГ в 1990-2000-х годах. Основные различия:

  • Позиция буквы Ё: В Windows-1251 Ё находится на позициях 0xA8 (прописная) и 0xB8 (строчная), в ISO 8859-5 — на 0xB0 и 0xD0.
  • Дополнительные символы: Windows-1251 включает больше знаков препинания и валют (например, евро €), в то время как ISO 8859-5 имеет меньше таких символов.
  • Совместимость: Windows-1251 лучше поддерживается в Windows-приложениях, но менее стандартизирована на международном уровне.

ISO 8859-5 vs КОИ-8R

КОИ-8R (KOI8-R) — популярная кодировка для русского языка в Unix и интернете. Отличия:

  • Принцип кодирования: КОИ-8R сохраняет читаемость текста при потере старшего бита (например, русские буквы преобразуются в латиницу), что было важно для старых протоколов.
  • Позиция букв: В КОИ-8R кириллические буквы расположены в порядке, близком к ASCII, что упрощает сортировку, но усложняет международную стандартизацию.
  • Поддержка: КОИ-8R был более распространён в Unix-среде, а ISO 8859-5 — в официальных стандартах.

ISO 8859-5 vs Unicode (UTF-8)

Unicode (UTF-8) — современный стандарт, поддерживающий все символы мира. ISO 8859-5 является подмножеством Unicode: все его символы имеют коды в диапазоне U+0000–U+00FF (с учётом отображения кириллицы на U+0400–U+04FF). UTF-8 полностью вытеснил ISO 8859-5 в вебе и программировании благодаря универсальности и отсутствию проблем с кодировкой.

Критика и ограничения

ISO 8859-5 подвергался критике за несколько недостатков:

  • Отсутствие буквы Ё в стандартном порядке: В отличие от Windows-1251, где Ё стоит рядом с Е, в ISO 8859-5 она вынесена в начало диапазона, что нарушает алфавитный порядок и усложняет сортировку.
  • Неполное покрытие языков: Стандарт не включает некоторые буквы для украинского (Ґ, Ї, Є), белорусского (Ў) и других языков, которые были добавлены только в более поздних версиях (например, в ISO 8859-5:1999).
  • Конфликт с управляющими символами: Диапазон 0x80–0x9F зарезервирован для управляющих символов, что ограничивает количество доступных графических символов (всего 96 кириллических знаков, что недостаточно для некоторых языков).
  • Низкая популярность: Из-за конкуренции с другими кодировками и отсутствия широкой поддержки в операционных системах ISO 8859-5 остался нишевым стандартом.

Интересные факты

  • ISO 8859-5 является частью серии ISO 8859, которая также включает ISO 8859-1 (Latin-1, для западноевропейских языков) и ISO 8859-2 (Latin-2, для центральноевропейских языков).
  • В некоторых документах стандарт ошибочно называют «ISO Cyrillic» или «ISO 8859-5 Cyrillic».
  • В 1990-х годах ISO 8859-5 использовался в протоколе электронной почты SMTP для передачи кириллических писем, но позже был заменён на UTF-8.
  • Буква Ё в ISO 8859-5 занимает ту же позицию, что и символ «°» (градус) в ISO 8859-1, что приводило к ошибкам при конвертации текстов.

Современное состояние

В настоящее время ISO 8859-5 практически не используется в новых проектах. Все современные веб-сайты, программы и операционные системы (Windows, macOS, Linux) по умолчанию используют Unicode (UTF-8). Однако стандарт сохраняется в некоторых устаревших системах, таких как старые базы данных, эмуляторы терминалов и архивные документы. В России и странах СНГ он полностью вытеснен Windows-1251 и UTF-8.

Источники

  • ISO/IEC 8859-5:1999 — Information technology — 8-bit single-byte coded graphic character sets — Part 5: Latin/Cyrillic alphabet.
  • RFC 1345 — Character Mnemonics and Character Sets (1992), описывающая ISO 8859-5.
  • Unicode Consortium — The Unicode Standard, Version 15.0 (2022), раздел о кириллице.
  • Статья «Кириллические кодировки» в журнале «КомпьютерПресс» (1997).
  • Документация по кодировкам в операционных системах Unix (man-страницы для iconv).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →