CP866 (назва найпоширенішого сучасного стандарту) чи «Альтернати́вне кодува́ння» (назва початкового варіанту), DOS кирилиця — створена на основі CP437 кодова сторінка, де всі специфічні західноєвропейські символи у другій половині замінено кирилицею, лишаючи псевдографічні символи незмінними. Таким чином, це не псує вигляду програм, що використовують для роботи текстові вікна, а також забезпечує використання в них символів кирилиці.
Історично існувало багато варіантів альтернативного кодування, але всі відмінності стосуються лише області 0xF0 — 0xFF (240—255). Використовувались різноманітні локалізації-саморобки, що писались незалежно окремими програмістами, поширювались за знайомством і через рідкісні комп'ютерні центри.
Остаточним стандартом стало кодування IBM CP866, підтримку якого було додано в 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) — кодуванням Юнікод.
CP866
Нижня частина таблиць кодування (латиниця) повністю відповідає кодуванню ASCII.
В приведених таблицях числа під буквами позначають шістнадцятковий код букви в Юнікоді.
|
.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 може використовуватись для української й білоруської мов, оскільки включає символи Єє Її Ўў, але в ній нема кириличної Іі, тому доводиться замість неї використовувати латинську Ii; також відсутня Ґґ.
Варіанти для української мови
Початковий варіант «альтернативного кодування» містив лише літери російського алфавіту. Поширене в наш час кодування CP866 не має літери Ґґ, а відсутність у ньому кириличної Іі стає частою причиною несумісностей з іншими кириличними кодуваннями. Це стало причиною розробки українських кодувань, які усували ці недоліки.
(Тут і далі показані лише останні рядки таблиць, оскільки решта збігається.)
RUSCII, або CP1125 (не слід плутати з CP1251), CP866NAV, українське кодування ГОСТ:
|
.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
|
На відміну від CP866, включає українські літери Ґґ Іі. Білоруська Ўў відсутня. Було створене на основі «альтернативного кодування» до широкого розповсюдження сучасної CP866, тому коди символів Єє Її в цих кодуваннях відрізняються. Було прийняте як український державний стандарт кодування для 8-бітних символів (РСТ 2018-91). З поширенням ОС Windows, до якої підтримки цього кодування включено не було, втратило значення (хоча може продовжувати використовуватись у створених раніше базах даних, у т.ч. і в державних установах).
Також деякого розповсюдження набуло т. зв. CP 866ukr — модифікований варіант CP866 з заміною Ўў на Іі. На відміну від CP1125, зберігає повну сумісність українських літер із CP866, хоча Ґґ відсутня. До стандартного комплекту Windows не входить, але деякі користувачі встановлюють саморобний патч[1], що дозволяє, використовуючи це кодування, працювати в програмах для командного рядка (таких як FAR Manager) із іменами файлів, що містять кириличну Іі.
|
.0 |
.1
|
.2 |
.3
|
.4 |
.5
|
.6 |
.7
|
.8 |
.9
|
.A |
.B
|
.C |
.D
|
.E |
.F
|
F−
|
Ё 401
|
ё 451
|
Є 404
|
є 454
|
Ї 407
|
ї 457
|
І 406
|
і 456
|
° B0
|
∙ 2219
|
· B7
|
√ 221A
|
№ 2116
|
¤ A4
|
■ 25A0
|
A0
|
Інші варіанти
Найпоширеніший варіант до появи 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
|
Альтернативне кодування відповідно до ГОСТ 19768-87 (за набором символів збігається з основним кодуванням; у позиціях 0xF2—0xF5 мають бути прямі діагональні лінії):
|
.0 |
.1
|
.2 |
.3
|
.4 |
.5
|
.6 |
.7
|
.8 |
.9
|
.A |
.B
|
.C |
.D
|
.E |
.F
|
F−
|
Ё 401
|
ё 451
|
╭ 256D
|
╮ 256E
|
╯ 256F
|
╰ 2570
|
→ 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
|
Джерела
- ↑ Linux Wine + Far2l Ukrainian cp866. alter.org.ua (ua) . Процитовано 18 липня 2023.