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

ISO/IEC 646

ISO/IEC 646 — это международный стандарт, определяющий 7-битный набор символов для кодирования текстовой информации. Стандарт был разработан Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (IEC) и впервые опубликован в 1972 году. Он является основой для многих национальных и отраслевых кодировок, включая ASCII (American Standard Code for Information Interchange), и до сих пор используется в качестве базового набора символов в ряде протоколов и систем.

История

Разработка ISO/IEC 646 началась в конце 1960-х годов, когда возникла необходимость в унификации способов представления текста на разных компьютерах и телетайпах. До этого каждый производитель использовал собственные кодировки, что затрудняло обмен данными. Основой для стандарта послужил американский стандарт ASCII (ANSI X3.4-1968), который уже получил широкое распространение в США. Однако ISO стремилась создать международный стандарт, учитывающий потребности разных стран, включая необходимость отображения национальных символов (например, букв с диакритическими знаками в европейских языках, кириллицы, арабского письма).

Первая версия стандарта была опубликована в 1972 году под названием ISO 646. В 1983 году он был пересмотрен и получил обозначение ISO/IEC 646. Последняя редакция стандарта датируется 1991 годом.

Основные характеристики

ISO/IEC 646 определяет 7-битную кодировку, то есть использует 128 кодовых позиций (от 0 до 127). Каждый символ кодируется 7 битами, что позволяет хранить один символ в одном байте (8 бит), при этом старший бит обычно не используется или используется для других целей (например, для расширения набора символов до 8-битного).

Стандарт делит кодовое пространство на несколько зон:

  • Управляющие символы (коды 0–31 и 127): 33 символа, предназначенных для управления устройствами (например, перевод строки, возврат каретки, табуляция). Эти символы не отображаются на экране или бумаге, но влияют на форматирование текста.
  • Печатные символы (коды 32–126): 95 символов, включая пробел (код 32), цифры (0–9), заглавные и строчные латинские буквы (A–Z, a–z), знаки препинания и математические символы.

Национальные варианты

Ключевой особенностью ISO/IEC 646 является то, что он не является жёстко фиксированным набором символов. Стандарт определяет «базовую» версию (ISO 646-IRV — International Reference Version), которая почти полностью совпадает с ASCII, но допускает замену некоторых символов на национальные. В частности, для размещения букв с диакритическими знаками или символов других алфавитов в стандарте предусмотрено 10 «заменяемых» кодовых позиций (обычно это коды 35, 36, 64, 91, 92, 93, 94, 96, 123, 124, 125, 126). В разных национальных вариантах эти позиции могут занимать разные символы.

Например, в британском варианте (BS 4730) символ # (код 35) заменён на £ (фунт стерлингов), а в немецком варианте (DIN 66003) символ [ (код 91) заменён на Ä, \ (код 92) — на Ö, ] (код 93) — на Ü. В советском варианте (ГОСТ 19768-74, позднее ГОСТ 27463-87) на этих позициях размещались буквы кириллицы, что позволяло использовать 7-битную кодировку для русского языка, хотя и с ограниченным набором символов.

Всего было разработано несколько десятков национальных вариантов ISO/IEC 646 для разных стран и языков, включая:

Отличия от ASCII

Хотя ISO/IEC 646 и ASCII очень похожи, между ними есть принципиальные различия:

  • Происхождение: ASCII — национальный стандарт США (ANSI), ISO/IEC 646 — международный стандарт.
  • Гибкость: ASCII является фиксированным набором символов, а ISO/IEC 646 допускает замену некоторых символов для национальных нужд.
  • Управляющие символы: ASCII определяет 32 управляющих символа, ISO/IEC 646 — 33 (включая код 127, который также является управляющим).
  • Распространение: ASCII стал де-факто стандартом для большинства компьютерных систем, в то время как ISO/IEC 646 использовался в основном в телекоммуникациях и на некоторых национальных рынках.

Применение

ISO/IEC 646 нашёл применение в различных областях, особенно до широкого распространения 8-битных кодировок (таких как ISO/IEC 8859) и Unicode:

  • Телетайпы и телекс: 7-битная кодировка была стандартом для передачи текста по телеграфным линиям.
  • Ранние компьютерные системы: Многие компьютеры 1970-х и 1980-х годов использовали ISO/IEC 646 или его национальные варианты.
  • Протоколы передачи данных: Некоторые протоколы, такие как SMTP (для электронной почты) и HTTP (для веб-страниц), изначально были разработаны для 7-битного текста, хотя впоследствии были расширены для поддержки 8-битных кодировок (MIME, UTF-8).
  • Файловые системы и имена файлов: В некоторых операционных системах (например, в ранних версиях Unix) имена файлов могли содержать только символы из ISO/IEC 646.

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

Основным недостатком ISO/IEC 646 является его ограниченность. 7-битный набор из 128 символов не позволяет одновременно отображать все символы, необходимые для большинства языков мира. Национальные варианты решали эту проблему лишь частично, жертвуя некоторыми символами (например, знаками пунктуации) в пользу национальных букв. Это приводило к проблемам совместимости: текст, написанный в одном национальном варианте, мог быть неправильно прочитан в другом.

С развитием вычислительной техники и глобализацией потребность в единой универсальной кодировке стала очевидной. Это привело к созданию 8-битных кодировок (ISO/IEC 8859) и, в конечном итоге, к Unicode (ISO/IEC 10646), который позволяет кодировать все символы всех известных письменностей. Однако ISO/IEC 646 остаётся важной вехой в истории кодирования текста и до сих пор используется в некоторых устаревших системах и протоколах.

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

  • Стандарт ISO/IEC 646 лёг в основу кодировки KOI-7, которая использовалась в советских компьютерах и телетайпах для передачи кириллицы.
  • Символ @ (код 64) в ISO/IEC 646 является частью базового набора и не заменяется в национальных вариантах, что способствовало его широкому распространению в электронной почте.
  • В некоторых национальных вариантах ISO/IEC 646 символ ~ (тильда) заменялся на ^ (циркумфлекс), что могло приводить к путанице при передаче данных.

Источники

  • ISO/IEC 646:1991 — Information technology — ISO 7-bit coded character set for information interchange.
  • ГОСТ 27463-87 — Системы обработки информации. 7-битные кодированные наборы символов.
  • MacKenzie, C. E. (1980). Coded Character Sets: History and Development. Addison-Wesley.
  • Документация по стандарту ASCII (ANSI X3.4-1968).

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

На главную BFOmetr →