Выбор стандарта
В письменном общении люди обмениваются текстами, точнее наборами символов. Наборы символов, используемых для составления текстов, сведены в стандарты. В настоящее время действует множество стандартов управления кодировками символов. Например, организация IANA (Internet Assigned Numbers Authority ), администрирующая адресное пространство Интернета, по состоянию на 2026 год приводит список 400 действующих стандартов кодировок.
Непосредственно с кодировкой кириллицы связаны стандарты:
- Стандарт Юникода (Unicode), который определяет набор символов, спектр алгоритмов, требований к обработке данных и другие сведения, связанные с глобальной письменностью.
- Стандарт ISO/IEC 10646:2020 Information technology. Universal coded character set (UCS), который определяет универсальный кодированный набор символов.
- US ASCII и другие подобные стандарты, разработанные национальными организациями стандартизации.
- ISO/IEC 646:1991 Information technology — ISO 7-bit coded character set for information interchange
- ISO 5427:1984 Extension of the Cyrillic alphabet coded character set for bibliographic information interchange
- ISO/IEC 8859-5:1998 Information technology — 8-bit single-byte coded graphic character sets. Part 5: Latin/Cyrillic alphabet
- ISO/IEC 2022:1994 Information technology — Character code structure and extension techniques
- ISO 5427:1984 Extension of the Cyrillic alphabet coded character set for bibliographic information interchange
- ISO 9:1995 Information and documentation — Transliteration of Cyrillic characters into Latin characters — Slavic and non-Slavic languages
- ISO 3098-6:2000 Technical product documentation — LetteringPart 6: Cyrillic alphabet
- IETF утвердил несколько RFC по расширенным вариантам КОИ-8, впоследствии зарегистрированным организацией IANA:
- RFC 1489 — KOI8-R (с поддержкой русского алфавита);
- RFC 2319KOI8-U (с поддержкой украинского алфавита);
- RFC 1345 — ISO-IR-111 (с ошибкой в расположении основного диапазона).
- ГОСТ 19768—93 Информационная технология. Наборы 8-битных кодированных символов. Двоичный код обработки информации.
- ГОСТ Р 34.303—92 (ИСО 4873—86) «Информационная технология. Наборы 8-битных кодированных символов. 8-битный код обмена и обработки информации»
- INIS-8. ISO IR 51 INIS Cyrillic Extension. International Nuclear Information System. INIS character set.
- ECMA cyrillic.
- ISO Unicode IBM 1276. IBM Cyrillic Extended Presentation Set, GCSGID: 1276.
- IBM 880. IBM NLS RM Vol2 SE09-8002-01, March 1990
- Amiga-1251.
- Windows-1251. Кодовые страницы Windows для кириллицы.
Стандарт ISO/IEC 10646:2020
Стандарт ISO/IEC 10646:2020 синхронизирован со стандартом Юникод (Unicode), но содержит не все части Юникода, а лишь часть, связанную с символами:
- определяет архитектуру символов;
- приводит определения терминам;
- описывает общую структуру кодового пространства;
- определяет назначение плоскостей символов:
- основную многоязычную плоскость;
- дополнительную многоязычную плоскость;
- дополнительную идеографическую плоскость;
- дополнительную специализированную плоскость;
- определяет набор графическим символов, используемых в письменности;
- определяет кодовые представления управляющих символов;
- определяет три формы кодировки UCS: UTF-8, UTF-16, UTF-32.
Стандарт Юникода (Unicode) содержит набор спецификаций, предоставляющих программистам и авторам текстов:
- единую универсальную кодировку символов;
- подробные описания символов и их свойств;
- порядок формирования слов и переносов строк;
- порядок сортировки и поиска текста;
- порядок формирования числа, даты и времени.
Стандарт Unicode
Содержание стандарта Юникода охватывает:
- понятия, принципы проектирования, область применения стандарта, требования к обработке текста;
- правила обработки текста;
- алгоритмы подтверждения соответствия: нормализация, регистры по умолчанию;
- подробное описание свойств символов;
- реализацию: сжатие, перекодирование в другие стандарты, стратегию управления неизвестными и неподдерживаемыми символами;
- описание блоков символов по каждой письменности;
- условные обозначения и список наименований символов.
Отдельно приведено подробное описание стандарта Юникода.
Непрактичность стандартов
Отметим некоторые моменты непрактичности существующих официальных стандартов как для авторов гипертекстов, так и для инженеров, проектирующих интерфейс.
Стандарт Юникода служит хорошей основой управления символами гипертекста. Однако практически использовать этот стандарт крайне неудобно. Неудобный вебсайт содержит документы в текстовых форматах (PDF и TXT). Поиск по вебсайту не предусмотрен.
Справочные данные Юникода избыточные, в них не выделены символы, применяемые в гипертексте. Кроме того, символы одного назначения разбросаны по разным таблицам. Например, стрелки можно найти в следующих плоскостях и блоках:
- основная многоязычная плоскость (Basic Multilingual Plane, BMP):
- стрелки (2190—21FF);
- дополнительные стрелки — A (27F0—27FF);
- дополнительные стрелки — B (2900—297F);
- разные математические символы — B (2980—29FF);
- разные символы и стрелки (2B00—2BFF);
- дополнительная многоязычная плоскость (Supplementary Multilingual Plane, SMP):
- дополнительные стрелки (1F800—1F8FF);
- математические символы (1D400–1D7FF);
- дополнительные стрелки (1F800–1F8FF).
Справочные данные стандарта HTML5 - A vocabulary and associated APIs for HTML and XHTML - Named character references. также не блещут прагматичностью. Символы сведены в одну таблицу длинной более 2200 строк, мелким шрифтом. Найти нужный символ достаточно сложно, а просмотреть всю группу символов одного назначения — например стрелки, — практически невозможно.
Указанные и многие другие недостатки стандартов порождают трудности пользователей, которые применяют материал стандартов в своей ежедневной практике. Именно с этим связано появление лавины вебсайтов, содержащих пояснения или выборки символов из стандартов.
Вывод
Безнадёжно устарели стандарты: ASCII, ISO/IEC 646:1991, ISO/IEC 8859-5:1998, ГОСТ 19768—93, RFC 1489 — KOI8-R, RFC 1345 — ISO-IR-111, ГОСТ Р 34.303—92, Windows-1251.
В настоящее время практически значимые лишь два стандарта кодировки: ISO/IEC 10646:2020 и Юникод (Unicode). Поскольку стандарт ISO/IEC 10646:2020 вторичен по отношению к стандарту Юникода (Unicode) и ограничен по содержанию его можно игнорировать.
В качестве нормативного обеспечения управления обычным текстом следует выбрать стандарт Юникода (Unicode).
И стандарт ISO/IEC 10646:2020, и стандарт Unicode 17.0:2025 определяют кодировки UCS: UTF-8, UTF-16, UTF-32. Применительно к обычным текстам публикуемым во Всемирной Паутине (WWW) следует применять кодировку UTF-8.