CP866

Кодовая таблица кодировки CP866 (зарегистрированного IBM варианта альтернативной кодировки)

Альтернати́вная кодиро́вка — основанная на CP437 кодовая страница, где большинство специфических европейских символов в верхней половине (позициях 0x800xFF) кодовой таблицы заменено на буквы русского алфавита, а псевдографические символы оставлены нетронутыми. Такой подход не портит внешнего вида зарубежных программ, использующих псевдографику (как правило, для отрисовки рамок и таблиц), а также обеспечивает возможность использования в них русских букв.

Разработана в паре с основной кодировкой (с которой совпадает по набору символов) в середине 1980-х годов в Вычислительном центре Академии наук СССР, была названа и описана в статье в журнале «Микропроцессорные средства и системы»[1]. Пользовалась большой популярностью среди советских пользователей IBM PC-совместимых ПК (в феврале 1989 года 85 % опрошенных заявили, что используют её)[2]. Техническим недостатком данной кодировки является разрыв основного диапазона строчных русских букв, несколько усложняющий обработку (в частности, сортировку) текстовой информации.

Исторически существовало несколько вариантов альтернативной кодировки, но все изменения, как правило, затрагивали только диапазон кодовых позиций 0xF00xFD. Окончательным стандартом стала кодировка IBM CP866, которая, помимо русского и болгарского языков, может использоваться ещё и для украинского (советского периода) и белорусского, поскольку включает буквы Є, Ї и Ў; тем не менее, в ней нет кириллической буквы І (вместо неё применяют латинскую I), а также буквы Ґ, упразднённой в 1933 году и на момент создания кодировки отсутствовавшей в украинском алфавите (восстановлена в 1990 году). Поддержка CP866 была добавлена в ОС MS-DOS версии 4.01[3] (только в локализованных и переведённых на русский язык выпусках) и повсеместно — в MS-DOS версии 6.22. В этой кодировке записываются имена объектов (файлов и каталогов) в файловой системе FAT (и короткие имена в VFAT). Поныне является популярной стандартной кодировкой Microsoft в среде DOS и OS/2, используется в консоли русифицированных ОС семейства Windows NT. Вне среды MS-DOS в Microsoft Windows заменена стандартной кодировкой CP1251, а в ОС семейства Windows NT (Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 и т. д.) — Юникодом в представлении UTF-16LE (до Windows 2000 — UCS-2LE).

Хотя оригинальная альтернативная кодировка не была стандартизована ни в одном из когда-либо существовавших ГОСТов, её иногда называют «альтернативной кодировкой ГОСТа» или «альтернативной кодировкой ГОСТ». Данное ошибочное название закрепилось за ней из-за использования в одном из первых русскоязычных учебников по работе с IBM PC-совместимыми ПК, пользовавшемся популярностью в 1990-х годах — книге В. Э. Фигурнова «IBM PC для пользователя»[4].

Два варианта альтернативной кодировки — КОИ-8 Н1 (базовый набор кириллицы для русского языка) и КОИ-8 Н2 (рабочий набор кириллицы для русского, белорусского и украинского языков, включающий символы псевдографики) — определены в ГОСТ Р 34.303—92[5]. Несмотря на сходство названий, они не имеют отношения к кодировке КОИ-8 по ГОСТ 19768—74, в настоящее время не определённой ни в одном из действующих стандартов.

Кодовые таблицы

Нижние половины (позиции 0x000x7F) кодовых таблиц не показаны, поскольку они полностью совпадают с CP437 (ASCII). Числа под символами обозначают их шестнадцатеричный код в Юникоде.

Оригинальная кодировка

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. А
0410
Б
0411
В
0412
Г
0413
Д
0414
Е
0415
Ж
0416
З
0417
И
0418
Й
0419
К
041A
Л
041B
М
041C
Н
041D
О
041E
П
041F
9. Р
0420
С
0421
Т
0422
У
0423
Ф
0424
Х
0425
Ц
0426
Ч
0427
Ш
0428
Щ
0429
Ъ
042A
Ы
042B
Ь
042C
Э
042D
Ю
042E
Я
042F
A. а
0430
б
0431
в
0432
г
0433
д
0434
е
0435
ж
0436
з
0437
и
0438
й
0439
к
043A
л
043B
м
043C
н
043D
о
043E
п
043F
B.
2591

2592

2593

2502

2524

2561

2562

2556

2555

2563

2551

2557

255D

255C

255B

2510
C.
2514

2534

252C

251C

2500

253C

255E

255F

255A

2554

2569

2566

2560

2550

256C

2567
D.
2568

2564

2565

2559

2558

2552

2553

256B

256A

2518

250C

2588

2584

258C

2590

2580
E. р
0440
с
0441
т
0442
у
0443
ф
0444
х
0445
ц
0446
ч
0447
ш
0448
щ
0449
ъ
044A
ы
044B
ь
044C
э
044D
ю
044E
я
044F
F. Ё
0401
ё
0451
🮣
1FBA3
🮢
1FBA2
🮠
1FBA0
🮡
1FBA1

2192

2190

2193

2191
÷
00F7
±
00B1

2116
¤
00A4

25A0
NBSP
00A0

Производные кодировки

В данном разделе приведены только те строки кодовых таблиц, которые отличаются от оригинальной версии ВЦ АН СССР.

Наиболее распространённый вариант до появления CP866, называемый также «модифицированной альтернативной кодировкой»[4] (KOI8-R использует этот же набор символов):

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
F. Ё
0401
ё
0451

2265

2264

2320

2321
÷
00F7

2248
°
00B0

2219
·
00B7

221A

207F
²
00B2

25A0
NBSP
00A0

То же, но без буквы Ё (отличается от CP437 только заменой символов в диапазонах 0x800xAF и 0xE00xEF на русские буквы):

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
F.
2261
±
00B1

2265

2264

2320

2321
÷
00F7

2248
°
00B0

2219
·
00B7

221A

207F
²
00B2

25A0
NBSP
00A0

CP866 — вариант альтернативной кодировки, зарегистрированный корпорацией IBM:

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
F. Ё
0401
ё
0451
Є
0404
є
0454
Ї
0407
ї
0457
Ў
040E
ў
045E
°
00B0

2219
·
00B7

221A

2116
¤
00A4

25A0
NBSP
00A0

CP866LV — кодировка, использовавшаяся в Латвии (Латвийской ССР), часть стандартных символов заменена на буквы латышского алфавита:

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
B.
2591

2592

2593

2502

2524
Ā
0100

2562
ņ
0146

2555

2563

2551

2557

255D

255C

255B

2510
C.
2514

2534

252C

251C

2500

253C
ā
0101

255F

255A

2554

2569

2566

2560

2550

256C

2567
D. Š
0160

2564
č
010D
Č
010C

2558

2552
ģ
0123
Ī
012A
ī
012B

2518

250C

2588

2584
ū
016B
Ū
016A

2580
E. р
0440
с
0441
т
0442
у
0443
ф
0444
х
0445
ц
0446
ч
0447
ш
0448
щ
0449
ъ
044A
ы
044B
ь
044C
э
044D
ю
044E
я
044F
F. Ē
0112
ē
0113
Ģ
0122
ķ
0137
Ķ
0136
ļ
013C
Ļ
013B
ž
017E
Ž
017D

2219
·
00B7

221A
Ņ
0145
š
0161

25A0
NBSP
00A0

CP1125 (CP866U, RUSCII) — вариант альтернативной кодировки с поддержкой букв украинского алфавита, стандартизованный в РСТ УССР 2018—91:

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
F. Ё
0401
ё
0451
Ґ
0490
ґ
0491
Є
0404
є
0454
І
0406
і
0456
Ї
0407
ї
0457
÷
00F7
±
00B1

2116
¤
00A4

25A0
NBSP
00A0

CP866.chuv — вариант кодировки CP866 с поддержкой букв чувашского алфавита:

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
F. Ё
0401
ё
0451
Ӑ
04D0
ӑ
04D1
Ӗ
04D6
ӗ
04D7
Ҫ
04AA
ҫ
04AB
Ӳ
04F2
ӳ
04F3
·
00B7

221A

2116
¤
00A4

25A0
NBSP
00A0

КОИ-8 Н2 — кодировка, определённая в ГОСТ Р 34.303—92[5]:

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
F. SHY
00AD

2116
Ґ
0490
ґ
0491
Ё
0401
ё
0451
Є
0404
є
0454
І
0406
і
0456
Ї
0407
ї
0457
Ў
040E
ў
045E

25A0
NBSP
00A0

Примечания

  1. Брябрин В. М., Ландау И. Я., Неменман М. Е. О системе кодирования для персональных ЭВМ // Микропроцессорные средства и системы : журнал. — 1986. № 4. С. 61—63. Архивировано 8 июля 2018 года.
  2. Юрий Стариков. 30-летию Russian MS-DOS 4.01 посвящается. Дата обращения: 4 марта 2025. Архивировано 8 декабря 2024 года.
  3. Code Page 866 MS-DOS Cyrillic CIS 1 (англ.). Microsoft Developer Network. Дата обращения: 4 марта 2025. Архивировано 6 октября 2024 года.
  4. 1 2 Фигурнов В. Э. Приложение 6. Кодировки символов // IBM PC для пользователя. М.: Финансы и статистика, 1990. — С. 226, 228.  240 с.: ил. 200 000 экз. — ISBN 5-279-00649-1. Архивировано 11 декабря 2023 года.
  5. 1 2 ГОСТ Р 34.303—92 (ИСО 4873—86) «Информационная технология. Наборы 8-битных кодированных символов. 8-битный код обмена и обработки информации».

Ссылки