CP866

«Альтернати́вная кодиро́вка» («Альтернативная кодировка ГОСТ») — основанная на CP437 кодовая страница, где все специфические европейские символы во второй половине заменены на кириллицу, а псевдографические символы оставлены нетронутыми. Это не портит вида программ, использующих эти символы для отрисовки рамок, а также обеспечивает использование в них символов кириллицы. Недостатком данной кодировки является разрыв в порядке малых кириллических букв. Разработана в 1984 году в ИВНД Академии наук СССР, была названа и описана в статье[1] и пользовалась большой популярностью (в феврале 1989 года 85 % опрошенных заявляли, что используют её)[2].

Таблица 16×16 всех значений CP866.

Исторически существовало много вариантов альтернативной кодировки, но все различия касаются только области 0xF0—0xFF (240—255).

Окончательным стандартом стала кодировка IBM 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 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7) — кодировками UCS-2 и UTF-16, основанными на стандарте Юникод.

В России кодировка частично установлена ГОСТ Р 34.303-92[4], где она названа КОИ-8 Н1 (не путать с КОИ-8); однако её последний ряд (0xF0—0xFF) не совпадает с аналогичным рядом в CP866.

Первая половина таблицы (коды 0-127) полностью соответствует кодировке CP437. В приведённых таблицах числа под буквами обозначают шестнадцатеричный код буквы в Юникоде. Ниже приведена только вторая половина таблицы, отличающаяся от CP437:

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
 
8.
 
А
410
Б
411
В
412
Г
413
Д
414
Е
415
Ж
416
З
417
И
418
Й
419
К
41A
Л
41B
М
41C
Н
41D
О
41E
П
41F
 
9.
 
Р
420
С
421
Т
422
У
423
Ф
424
Х
425
Ц
426
Ч
427
Ш
428
Щ
429
Ъ
42A
Ы
42B
Ь
42C
Э
42D
Ю
42E
Я
42F
 
A.
 
а
430
б
431
в
432
г
433
д
434
е
435
ж
436
з
437
и
438
й
439
к
43A
л
43B
м
43C
н
43D
о
43E
п
43F
 
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.
 
р
440
с
441
т
442
у
443
ф
444
х
445
ц
446
ч
447
ш
448
щ
449
ъ
44A
ы
44B
ь
44C
э
44D
ю
44E
я
44F
 
F.
 
Ё
401
ё
451
Є
404
є
454
Ї
407
ї
457
Ў
40E
ў
45E
°
B0

2219
·
B7

221A

2116
¤
A4

25A0
 
A0

CP866 может использоваться также для украинского и белорусского языков, поскольку включает буквы Є, Ї и Ў, однако в ней нет кириллической І, поэтому вместо неё применяли латинскую I; также нет буквы Ґ (в 1986 году её ещё не было в украинском языке, в 1990 году её вернули).

Другие варианты

править

(Показаны только последние строки таблиц, поскольку всё остальное совпадает.)

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

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

2265

2264

2320

2321
÷
F7

2248
°
B0

2219
·
B7

221A

207F
²
B2

25A0
 
A0

То же самое, но без буквы Ё (все символы 0xF0—0xFF совпадают с соответствующими символами CP437):

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

2261
±
B1

2265

2264

2320

2321
÷
F7

2248
°
B0

2219
·
B7

221A

207F
²
B2

25A0
 
A0

RUSCII (CP866U, CP1125, GOST Ukrainian):

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
 
F.
 
Ё
401
ё
451
Ґ
490
ґ
491
Є
404
є
454
І
406
і
456
Ї
407
ї
457
·
B7

221A

2116
¤
A4

25A0
 
A0

Альтернативная кодировка согласно ГОСТ 19768-87 (по набору символов совпадает с основной кодировкой; в позициях 0xF2—0xF5 должны быть прямые диагональные линии):

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
 
F.
 
Ё
401
ё
451
🮣
1FBA3
🮢
1FBA2
🮠
1FBA0
🮡
1FBA1

2192

2190

2193

2191
÷
F7
±
B1

2116
¤
A4

25A0
 
A0

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

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

221A

2116
¤
A4

25A0
 
A0

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

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

2591

2592

2593

2502

2524
Ā
100

2562
ņ
146

2555

2563

2551

2557

255D

255C

255B

2510
 
C.
 

2514

2534

252C

251C

2500

253C
ā
101

255F

255A

2554

2569

2566

2560

2550

256C

2567
 
D.
 
Š
160

2564
č
10D
Č
10C

2558

2552
ģ
123
Ī
12A
ī
12B

2518

250C

2588

2584
ū
16B
Ū
16A

2580
 
E.
 
р
440
с
441
т
442
у
443
ф
444
х
445
ц
446
ч
447
ш
448
щ
449
ъ
44A
ы
44B
ь
44C
э
44D
ю
44E
я
44F
 
F.
 
Ē
112
ē
113
Ģ
122
ķ
137
Ķ
136
ļ
13C
Ļ
13B
ž
17E
Ž
17D

2219
·
B7

221A
Ņ
145
š
161

25A0
 
A0

Примечания

править
  1. Брябрин В. М., Ландау И. Я., Неменман М. Е. О системе кодирования для персональных ЭВМ // Микропроцессорные средства и системы. — 1986. — № 4. — С. 61—63. Архивировано 8 июля 2018 года.
  2. Юрий Стариков. 15-летию Russian MS-DOS 4.01 посвящается. Дата обращения: 27 января 2015. Архивировано 4 декабря 2016 года.
  3. MSDN — Code Page 866 MS-DOS Cyrillic CIS 1. Дата обращения: 16 октября 2008. Архивировано 20 февраля 2013 года.
  4. ГОСТ Р 34.303-92. Наборы 8-битных кодированных символов. 8-битный код обмена и обработки информации. Дата обращения: 2 декабря 2017. Архивировано 3 декабря 2017 года.

Ссылки

править