Code page 866

A VGA-compatible text mode font partially supporting code page 866 (Є, Ї and Ў are missing)

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.

Code page 866[5][6]
_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.

Alternative code page
_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]

Modified CP 866
_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

IBM code page 1125/848[9][10] (Ukrainian standard RST 2018-91[11])
_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

IBM code page 1131/849 (Belarusian)[12][13]
_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.

KOI-8 N1 (GOST R 34.303-92)
_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
KOI-8 N2 (GOST R 34.303-92)
_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.

Lehner–Czech modification
_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]

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

  1. ^ "OS/2" (in Russian).
  2. ^ "Code Pages Supported by Windows: OEM Code Pages". Go Global Development Center. Microsoft. Retrieved 2011-10-11.
  3. ^ a b ‹See Tfd›(in Russian) Брябрин В. М., Ландау И. Я., Неменман М. Е. О системе кодирования для персональных ЭВМ // Микропроцессорные средства и системы. — 1986. — № 4. — С. 61–64.
  4. ^ ‹See Tfd›(in Russian) ГОСТ Р 34.303-92. Наборы 8-битных кодированных символов. 8-битный код обмена и обработки информации. = 8-bit coded character sets. 8-bit code for information interchange.
  5. ^ "OEM 866". Go Global Development Center. Microsoft. Retrieved 2011-10-17.
  6. ^ "CP 00866". IBM Globalization.
  7. ^ "CP 00808". IBM Globalization.
  8. ^ ‹See Tfd›(in Russian) Фигурнов В. Э. IBM PC для пользователя. — 2-е изд. — М.: 1992. — С. 279.
  9. ^ "CP 01025". IBM Globalization.
  10. ^ "CP 00848". IBM Globalization.
  11. ^ ‹See Tfd›(in Ukrainian) РСТ УРСР 2018-91. Система обробки інформації. Кодування символів української абетки 8-бітними кодами.
  12. ^ "CP 01031". IBM Globalization.
  13. ^ "CP 00849". IBM Globalization.
  14. ^ "CPIDOS - CPX files (Code Page Information) Pack v3.0 - DOS codepages". FreeDOS.
  15. ^ 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.
  16. ^ 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.