Code page 866

Code page 866 (CP 866; Russian: Альтернативная кодировка) is a code page used under DOS and OS/2[1] to write Cyrillic script.[2] It is based on the "alternative code page" developed in 1986 by a research group at the Academy of Science of the USSR.[3] The code page was widely used during the DOS era because it preserves the pseudographic symbols of code page 437 (unlike the "Main code page" or Windows-1251) and maintains alphabetical order (although non-contiguously) of Cyrillic letters (unlike KOI8-R). Initially, this encoding was only available in the Russian version of MS-DOS 4.01 (1990) and since MS-DOS 6.22 in any language version.
Not identical, but two very similar encodings are registered in GOST R 34.303-92[4] as KOI-8 N1 and KOI-8 N2 (not to be confused with the original KOI-8).
Character set
Each character is shown with its equivalent Unicode code point.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 |
NUL 0000 |
☺ 263A |
☻ 263B |
♥ 2665 |
♦ 2666 |
♣ 2663 |
♠ 2660 |
• 2022 |
◘ 25D8 |
○ 25CB |
◙ 25D9 |
♂ 2642 |
♀ 2640 |
♪ 266A |
♫ 266B |
☼ 263C |
1_ 16 |
► 25BA |
◄ 25C4 |
↕ 2195 |
‼ 203C |
¶ 00B6 |
§ 00A7 |
▬ 25AC |
↨ 21A8 |
↑ 2191 |
↓ 2193 |
→ 2192 |
← 2190 |
∟ 221F |
↔ 2194 |
▲ 25B2 |
▼ 25BC |
2_ 32 |
SP 0020 |
! 0021 |
" 0022 |
# 0023 |
$ 0024 |
% 0025 |
& 0026 |
' 0027 |
( 0028 |
) 0029 |
* 002A |
+ 002B |
, 002C |
- 002D |
. 002E |
/ 002F |
3_ 48 |
0 0030 |
1 0031 |
2 0032 |
3 0033 |
4 0034 |
5 0035 |
6 0036 |
7 0037 |
8 0038 |
9 0039 |
: 003A |
; 003B |
< 003C |
= 003D |
> 003E |
? 003F |
4_ 64 |
@ 0040 |
A 0041 |
B 0042 |
C 0043 |
D 0044 |
E 0045 |
F 0046 |
G 0047 |
H 0048 |
I 0049 |
J 004A |
K 004B |
L 004C |
M 004D |
N 004E |
O 004F |
5_ 80 |
P 0050 |
Q 0051 |
R 0052 |
S 0053 |
T 0054 |
U 0055 |
V 0056 |
W 0057 |
X 0058 |
Y 0059 |
Z 005A |
[ 005B |
\ 005C |
] 005D |
^ 005E |
_ 005F |
6_ 96 |
` 0060 |
a 0061 |
b 0062 |
c 0063 |
d 0064 |
e 0065 |
f 0066 |
g 0067 |
h 0068 |
i 0069 |
j 006A |
k 006B |
l 006C |
m 006D |
n 006E |
o 006F |
7_ 112 |
p 0070 |
q 0071 |
r 0072 |
s 0073 |
t 0074 |
u 0075 |
v 0076 |
w 0077 |
x 0078 |
y 0079 |
z 007A |
{ 007B |
| 007C |
} 007D |
~ 007E |
⌂ 2302 |
8_ 128 |
А 0410 |
Б 0411 |
В 0412 |
Г 0413 |
Д 0414 |
Е 0415 |
Ж 0416 |
З 0417 |
И 0418 |
Й 0419 |
К 041A |
Л 041B |
М 041C |
Н 041D |
О 041E |
П 041F |
9_ 144 |
Р 0420 |
С 0421 |
Т 0422 |
У 0423 |
Ф 0424 |
Х 0425 |
Ц 0426 |
Ч 0427 |
Ш 0428 |
Щ 0429 |
Ъ 042A |
Ы 042B |
Ь 042C |
Э 042D |
Ю 042E |
Я 042F |
A_ 160 |
а 0430 |
б 0431 |
в 0432 |
г 0433 |
д 0434 |
е 0435 |
ж 0436 |
з 0437 |
и 0438 |
й 0439 |
к 043A |
л 043B |
м 043C |
н 043D |
о 043E |
п 043F |
B_ 176 |
░ 2591 |
▒ 2592 |
▓ 2593 |
│ 2502 |
┤ 2524 |
╡ 2561 |
╢ 2562 |
╖ 2556 |
╕ 2555 |
╣ 2563 |
║ 2551 |
╗ 2557 |
╝ 255D |
╜ 255C |
╛ 255B |
┐ 2510 |
C_ 192 |
└ 2514 |
┴ 2534 |
┬ 252C |
├ 251C |
─ 2500 |
┼ 253C |
╞ 255E |
╟ 255F |
╚ 255A |
╔ 2554 |
╩ 2569 |
╦ 2566 |
╠ 2560 |
═ 2550 |
╬ 256C |
╧ 2567 |
D_ 208 |
╨ 2568 |
╤ 2564 |
╥ 2565 |
╙ 2559 |
╘ 2558 |
╒ 2552 |
╓ 2553 |
╫ 256B |
╪ 256A |
┘ 2518 |
┌ 250C |
█ 2588 |
▄ 2584 |
▌ 258C |
▐ 2590 |
▀ 2580 |
E_ 224 |
р 0440 |
с 0441 |
т 0442 |
у 0443 |
ф 0444 |
х 0445 |
ц 0446 |
ч 0447 |
ш 0448 |
щ 0449 |
ъ 044A |
ы 044B |
ь 044C |
э 044D |
ю 044E |
я 044F |
F_ 240 |
Ё 0401 |
ё 0451 |
Є 0404 |
є 0454 |
Ї 0407 |
ї 0457 |
Ў 040E |
ў 045E |
° 00B0 |
∙ 2219 |
· 00B7 |
√ 221A |
№ 2116 |
¤ 00A4 |
■ 25A0 |
NBSP 00A0 |
Variants
There existed a few variants of the code page, but the differences were mostly in the last 16 code points (240–255).
Code page 808
IBM code page 808 is a variant of code page 866; the only difference is the euro sign (€) in position FDhex (253) replacing the universal currency sign (¤).[7]
Alternative code page
The original version of the code page by Bryabrin et al. (1986),[3] called the "Alternative code page" (Russian: Альтернативная кодировка) to distinguish it from the "Main code page" (Russian: Основная кодировка) by the same authors.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F_ 240 |
Ё 0401 |
ё 0451 |
╭ 256D |
╮ 2264 |
╯ 256F |
╰ 2570 |
→ 2192 |
← 2190 |
↓ 2193 |
↑ 2191 |
÷ 00F7 |
± 00B1} |
№ 2116 |
¤ 00A4 |
■ 25A0 |
NBSP 00A0 |
Modified code page 866
An unofficial variant with code points 240–255 identical to code page 437. However, the letter Ёё is usually placed at 240 and 241.[8]
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F_ 240 |
Ё 0401 |
ё 0451 |
≥ 2265 |
≤ 2264 |
⌠ 2320 |
⌡ 2321 |
÷ 00F7 |
≈ 2248 |
° 00B0 |
∙ 2219 |
· 00B7 |
√ 221A} |
ⁿ 207F |
² 00B2 |
■ 25A0 |
NBSP 00A0 |
Code page 1125/848
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F_ 240 |
Ё 0401 |
ё 0451 |
Ґ 0490 |
ґ 0491 |
Є 0404 |
є 0454 |
І 0406 |
і 0456 |
Ї 0407 |
ї 0457 |
÷ 00F7 |
± 00B1} |
№ 2116 |
¤/€ 00A4/20AC |
■ 25A0 |
NBSP 00A0 |
Code page 1131/849
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F_ 240 |
Ё 0401 |
ё 0451 |
Є 0404 |
є 0454 |
Ї 0407 |
ї 0457 |
Ў 040E |
ў 045E |
І 0406 |
і 0456 |
· 00B7 |
¤/€ 00A4/20AC} |
Ґ 0490 |
ґ 0491 |
∙ 2219 |
NBSP 00A0 |
GOST R 34.303-92
Two variants from GOST R 34.303-92. The first one, KOI-8 N1, leaves several code points empty for further internationalization (compare with code page 850).
The second one, KOI-8 N2, adds letters for Belarusian and Ukrainian. Code points 176–239 are identical to code page 866.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
B_ 176 |
░ 2591 |
▒ 2592 |
▓ 2593 |
│ 2502 |
┤ 2524 |
╣ 2563 |
║ 2551 |
╗ 2557 |
╝ 255D |
┐ 2510 | ||||||
C_ 192 |
└ 2514 |
┴ 2534 |
┬ 252C |
├ 251C |
─ 2500 |
┼ 253C |
╚ 255A |
╔ 2554 |
╩ 2569 |
╦ 2566 |
╠ 2560 |
═ 2550 |
╬ 256C |
|||
D_ 208 |
┘ 2518 |
┌ 250C |
█ 2588 |
▄ 2584 |
▌ 258C |
▐ 2590 |
▀ 2580 | |||||||||
E_ 224 |
р 0440 |
с 0441 |
т 0442 |
у 0443 |
ф 0444 |
х 0445 |
ц 0446 |
ч 0447 |
ш 0448 |
щ 0449 |
ъ 044A |
ы 044B |
ь 044C |
э 044D |
ю 044E |
я 044F |
F_ 240 |
SHY 00AD |
№ 2116 |
Ё 0401 |
ё 0451 |
■ 25A0 |
NBSP 00A0 |
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
B_ 176 |
░ 2591 |
▒ 2592 |
▓ 2593 |
│ 2502 |
┤ 2524 |
╡ 2561 |
╢ 2562 |
╖ 2556 |
╕ 2555 |
╣ 2563 |
║ 2551 |
╗ 2557 |
╝ 255D |
╜ 255C |
╛ 255B |
┐ 2510 |
C_ 192 |
└ 2514 |
┴ 2534 |
┬ 252C |
├ 251C |
─ 2500 |
┼ 253C |
╞ 255E |
╟ 255F |
╚ 255A |
╔ 2554 |
╩ 2569 |
╦ 2566 |
╠ 2560 |
═ 2550 |
╬ 256C |
╧ 2567 |
D_ 208 |
╨ 2568 |
╤ 2564 |
╥ 2565 |
╙ 2559 |
╘ 2558 |
╒ 2552 |
╓ 2553 |
╫ 256B |
╪ 256A |
┘ 2518 |
┌ 250C |
█ 2588 |
▄ 2584 |
▌ 258C |
▐ 2590 |
▀ 2580 |
E_ 224 |
р 0440 |
с 0441 |
т 0442 |
у 0443 |
ф 0444 |
х 0445 |
ц 0446 |
ч 0447 |
ш 0448 |
щ 0449 |
ъ 044A |
ы 044B |
ь 044C |
э 044D |
ю 044E |
я 044F |
F_ 240 |
SHY 00AD |
№ 2116 |
Ґ 0490 |
ґ 0491 |
Ё 0401 |
ё 0451 |
Є 0404 |
є 0454 |
І 0406 |
і 0456 |
Ї 0407 |
ї 0457} |
Ў 040E |
ў 045E |
■ 25A0 |
NBSP 00A0 |
Lehner–Czech modification
An unofficial modification used in software developed by Michael Lehner and Peter R. Czech. It replaces three mathematical symbols with guillemets and the section sign which are commonly used in the Russian language. (Lehner and Czech created a number of alternative character sets for other European languages as well, including one based on CWI-2 for Hungarian, a Kamenicky-based one for Czech and Slovak, a Mazovia variant for Polish and a seemingly-unique encoding for Lithuanian.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F_ 240 |
Ё 0401 |
ё 0451 |
Є 0404 |
є 0454 |
Ї 0407 |
ї 0457 |
Ў 040E |
ў 045E |
» 00BB |
« 00AB |
· 00B7 |
§ 00A7 |
№ 2116 |
¤ 00A4 |
■ 25A0 |
NBSP 00A0 |
FreeDOS
FreeDOS provides additional unofficial extensions of code page 866 for various non-Slavic languages:[14]
- 30002 - Cyrillic Tajik
- 30008 - Cyrillic Abkhaz and Ossetian
- 30010 - Cyrillic Gagauz and Moldovan
- 30011 - Cyrillic Russian Southern District (Kalmyk, Karachay-Balkar, Ossetian, North Caucasian)
- 30012 - Cyrillic Russian Siberian and Far Eastern Districts (Altai, Buryat, Khakas, Tuvan, Yakut, Tungusic, Paleo-Siberian)
- 30013 - Cyrillic Volga District - Turkic languages (Bashkir, Chuvash, Tatar)
- 30014 - Cyrillic Volga District - Finno-Ugric languages (Mari, Udmurt)
- 30015 - Cyrillic Khanty
- 30016 - Cyrillic Mansi
- 30017 - Cyrillic Northwestern District (Cyrillic Nenets, Latin Karelian, Latin Veps)
- 30018 - Latin Tatar and Cyrillic Russian
- 30019 - Latin Chechen and Cyrillic Russian
- 3012 - Latin Latvian and Cyrillic Russian ("RusLat")
- 58152 - Cyrillic Kazakh with Euro
- 58210 - Cyrillic Azeri
- 59234 - Cyrillic Tatar
- 60258 - Latin Azeri and Cyrillic Russian
- 62306 - Cyrillic Uzbek
Code page 900
Before Microsoft's final code page for Russian MS-DOS 4.01 was registered with IBM by Franz Rau of Microsoft as CP866 in January 1990, draft versions of it developed by Yuri Starikov (Юрий Стариков) of Dialogue were still called code page 900 internally. While the documentation was corrected to reflect the new name before the release of the product, sketches of earlier draft versions still named code page 900 and without Ukrainian and Belarusian letters, which had been added in autumn 1989, were published in the Russian press in 1990.[15] Code page 900 slipped through into the distribution of the Russian MS-DOS 5.0 LCD.CPI codepage information file.[16]
References
- ^ "OS/2" (in Russian).
- ^ "Code Pages Supported by Windows: OEM Code Pages". Go Global Development Center. Microsoft. Retrieved 2011-10-11.
- ^ a b ‹See Tfd›(in Russian) Брябрин В. М., Ландау И. Я., Неменман М. Е. О системе кодирования для персональных ЭВМ // Микропроцессорные средства и системы. — 1986. — № 4. — С. 61–64.
- ^ ‹See Tfd›(in Russian) ГОСТ Р 34.303-92. Наборы 8-битных кодированных символов. 8-битный код обмена и обработки информации. = 8-bit coded character sets. 8-bit code for information interchange.
- ^ "OEM 866". Go Global Development Center. Microsoft. Retrieved 2011-10-17.
- ^ "CP 00866". IBM Globalization.
- ^ "CP 00808". IBM Globalization.
- ^ ‹See Tfd›(in Russian) Фигурнов В. Э. IBM PC для пользователя. — 2-е изд. — М.: 1992. — С. 279.
- ^ "CP 01025". IBM Globalization.
- ^ "CP 00848". IBM Globalization.
- ^ ‹See Tfd›(in Ukrainian) РСТ УРСР 2018-91. Система обробки інформації. Кодування символів української абетки 8-бітними кодами.
- ^ "CP 01031". IBM Globalization.
- ^ "CP 00849". IBM Globalization.
- ^ "CPIDOS - CPX files (Code Page Information) Pack v3.0 - DOS codepages". FreeDOS.
- ^ Starikov, Yuri (2005-04-11). "15-летию Russian MS-DOS 4.01 посвящается" [15 Years of Russian MS-DOS 4.01] (in Russian). Archived from the original on 2016-12-03. Retrieved 2014-05-07.
- ^ Paul, Matthias (2001-06-10) [1995]. "Overview on DOS, OS/2, and Windows codepages" (CODEPAGE.LST file) (1.59 preliminary ed.). Archived from the original on 2016-04-20. Retrieved 2016-08-20.
Further reading
- Kornai, Andras; Birnbaum, David J.; da Cruz, Frank; Davis, Bur; Fowler, George; Paine, Richard B.; Paperno, Slava; Simonsen, Keld J.; Thobe, Glenn E.; Vulis, Dimitri; van Wingen, Johan W. (1993-03-13). "CYRILLIC ENCODING FAQ Version 1.3". 1.3. Retrieved 2017-02-18.