CP866
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 не входить, але деякі користувачі встановлюють саморобний патч, що дозволяє, використовуючи це кодування, працювати в програмах для командного рядка (таких як 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 |