Набор символов A
Набор символов A — это совокупность знаков, используемых для представления информации в письменной форме, обладающая определёнными структурными и функциональными характеристиками, которые отличают её от других систем письменности. В широком смысле термин «набор символов» может относиться к любому конечному множеству графических элементов (букв, цифр, знаков препинания, идеограмм), применяемому для записи текстов на одном или нескольких языках. В более узком, техническом значении, под набором символов понимают кодировку — стандарт, устанавливающий соответствие между графическими знаками и их числовыми кодами в компьютерных системах. В русскоязычной традиции под «набором символов A» часто подразумевают одну из исторических кодировок кириллицы, например, альтернативную кодировку ГОСТ (также известную как CP866 или IBM866), которая была широко распространена в операционных системах MS-DOS и ранних версиях Windows.
История
Происхождение и предпосылки
Необходимость в стандартизации наборов символов для кириллицы возникла с развитием вычислительной техники в 1970–1980-х годах. Первоначально компьютеры, производимые в СССР и странах Восточной Европы, использовали различные, несовместимые между собой кодировки. Это создавало проблемы при обмене данными, особенно в международных проектах. В 1980-х годах в рамках разработки Единой системы электронных вычислительных машин (ЕС ЭВМ) и персональных компьютеров (ПК) типа «Искра» и «Электроника» были предложены первые варианты кодировок кириллицы, основанные на 8-битном представлении (256 символов).
Разработка набора символов A
Набор символов A, известный также как «Кодировка ГОСТ 19768-87» или «Альтернативная кодировка», был разработан в 1987 году в рамках стандарта ГОСТ 19768-87 «Система обработки информации. Кодировка символов 8-битная». Этот стандарт определял 256 символов, где первые 128 (0–127) соответствовали стандарту ASCII (American Standard Code for Information Interchange), а вторые 128 (128–255) были отведены под национальные символы, в первую очередь — кириллицу. В отличие от основной кодировки ГОСТ (КОИ-8), которая была ориентирована на международное использование и сохраняла совместимость с ASCII в верхнем регистре, набор символов A был более «русифицированным»: он включал все буквы русского алфавита, включая «Ё» и «ё», а также псевдографические символы для построения таблиц и рамок в текстовом режиме.
Распространение и применение
Набор символов A получил широкое распространение в операционной системе MS-DOS (начиная с версии 3.3) и в ранних версиях Microsoft Windows (до Windows 95). Он использовался в текстовых редакторах (например, в Norton Commander, Volkov Commander, Far Manager), в системах управления базами данных (dBase, FoxPro) и в программировании на языках низкого уровня (ассемблер, C). В России и странах СНГ набор символов A стал де-факто стандартом для DOS-приложений, поскольку он обеспечивал корректное отображение кириллицы в текстовом режиме с разрешением 80×25 символов. В 1990-е годы, с переходом на Windows, набор символов A был вытеснен кодировкой Windows-1251, но оставался актуальным для старых программ и архивных данных.
Структура и характеристики
Кодировка
Набор символов A представляет собой 8-битную кодировку, в которой каждый символ кодируется одним байтом (8 бит). Это позволяет закодировать 256 различных символов. Диапазон значений от 0 до 127 (0x00–0x7F) полностью совпадает с ASCII и включает управляющие символы (0–31), знаки препинания, цифры, латинские буквы (A–Z, a–z) и специальные символы. Диапазон от 128 до 255 (0x80–0xFF) содержит национальные символы, в том числе:
- 32 буквы русского алфавита (А–Я, а–я) — 64 символа;
- букву «Ё» и «ё» — 2 символа;
- знаки препинания, используемые в русском языке (кавычки, тире, дефис) — около 10 символов;
- псевдографические символы (рамки, углы, линии) — 32 символа;
- математические и технические символы (±, ×, ÷, √, ∑, ∞) — около 20 символов;
- дополнительные символы (например, символы валют, градуса, параграфа) — около 10 символов.
Таблица символов (частичная)
Ниже приведена таблица кодов символов (в десятичной и шестнадцатеричной системе) для диапазона 128–255, характерная для набора символов A (CP866):
| Десятичный код | Шестнадцатеричный код | Символ | Описание |
|---|---|---|---|
| 128 | 0x80 | А | Русская заглавная буква А |
| 129 | 0x81 | Б | Русская заглавная буква Б |
| ... | ... | ... | ... |
| 159 | 0x9F | Я | Русская заглавная буква Я |
| 160 | 0xA0 | а | Русская строчная буква а |
| ... | ... | ... | ... |
| 175 | 0xAF | я | Русская строчная буква я |
| 240 | 0xF0 | Ё | Русская заглавная буква Ё |
| 241 | 0xF1 | ё | Русская строчная буква ё |
| 176–207 | 0xB0–0xCF | ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌ | Псевдографические символы |
Отличия от других кодировок
Набор символов A отличается от других кодировок кириллицы (КОИ-8, Windows-1251, ISO 8859-5) расположением русских букв. В КОИ-8 кириллица размещена в диапазоне 0xE0–0xFF, что обеспечивает совместимость с ASCII в верхнем регистре (например, «А» (0xE0) соответствует «а» (0xE0) в ASCII, но это не так). В Windows-1251 русские буквы занимают диапазон 0xC0–0xFF, а в наборе символов A — 0x80–0xAF (для заглавных) и 0xA0–0xAF (для строчных). Это различие приводило к тому, что тексты, созданные в одной кодировке, отображались как «кракозябры» в другой.
Применение
В операционных системах
Набор символов A был стандартной кодировкой для MS-DOS и ранних версий Windows (до Windows 95). Он использовался в текстовом режиме (консоль) для отображения кириллицы, а также в файловых системах FAT12 и FAT16 для хранения имён файлов. В Windows 9x и NT поддержка набора символов A была реализована через таблицу OEM (Original Equipment Manufacturer), которая использовалась для консольных приложений. В современных версиях Windows (начиная с Windows 2000) набор символов A поддерживается в режиме совместимости для старых программ.
В программировании
В языках программирования, таких как C, C++, Pascal, набор символов A использовался для работы с текстовыми строками в среде MS-DOS. Библиотеки функций (например, printf, scanf) по умолчанию ожидали данные в кодировке CP866. Для преобразования между наборами символов использовались функции CharToOem и OemToChar в Windows API. В современных языках (Python, Java, C#) поддержка набора символов A реализована через кодировку cp866 или IBM866.
В архивах и старых данных
Множество текстовых файлов, созданных в 1990-е годы, хранятся в кодировке набора символов A. Это касается документации, исходных кодов, баз данных, электронных книг и игр. Для корректного чтения таких файлов в современных системах требуется указать кодировку cp866 при открытии. В архиваторах (например, ZIP, RAR) имена файлов, созданные в DOS, также могут быть закодированы в наборе символов A.
Критика и ограничения
Несовместимость с Unicode
Основным недостатком набора символов A является его ограниченность 256 символами, что не позволяет представлять символы других языков (например, украинского, белорусского, болгарского) без дополнительных кодировок. С появлением Unicode (UTF-8, UTF-16) необходимость в использовании набора символов A отпала, так как Unicode обеспечивает единое представление для всех письменных систем мира.
Проблемы с псевдографикой
Псевдографические символы, входящие в набор символов A, были разработаны для текстового режима с фиксированным шагом (моноширинный шрифт). При отображении в графическом режиме или в веб-браузерах эти символы могут отображаться некорректно, если не используется соответствующий шрифт (например, Terminal, Lucida Console). В современных системах псевдографика заменяется символами Unicode (например, │, ─, ┌).
Устаревание
С переходом на Windows 95 и более поздние версии, а также с распространением интернета, набор символов A был вытеснен кодировкой Windows-1251, а затем — Unicode. В настоящее время он используется только в legacy-системах, эмуляторах DOS (например, DOSBox) и для работы с архивными данными.
Интересные факты
- Набор символов A часто называют «альтернативной кодировкой» (Alt-кодировкой), так как он был альтернативой основной кодировке ГОСТ (КОИ-8).
- В некоторых источниках набор символов A обозначается как CP866 (Code Page 866) — это номер кодовой страницы в системе IBM.
- Псевдографические символы набора символов A использовались для создания интерфейсов текстовых программ (например, Norton Commander, Volkov Commander), которые были популярны в 1990-е годы.
- В России и странах СНГ набор символов A был настолько распространён, что многие пользователи считали его единственно возможной кодировкой для кириллицы, не зная о существовании других.
Источники
- ГОСТ 19768-87 «Система обработки информации. Кодировка символов 8-битная».
- IBM. Code Page 866 (CP866) — IBM PC Data.
- Microsoft. Windows Code Pages: CP866.
- Книга: «Кодировки кириллицы: история и современность» (автор: А. В. Лебедев, 2003).
- Статья: «Развитие кодировок кириллицы в вычислительной технике» (журнал «КомпьютерПресс», № 5, 1998).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →