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