
Cyrillic. However, along with windows-1251, the most widely used encoding for Rus-
sian
is KOI8-R (the letter “R” stands for Russian). There are also other versions of KOI8.
The KOI8 encodings assign code positions 0 through 7F as in ASCII and place Cyrillic
letters and other characters in the “upper half.” As you can see from Figure 3-4, KOI8-
R contains a large number of drawing characters. Its repertoire of letters covers only
(modern) Russian and a few other languages. In contrast, Windows Cyrillic has many
more Cyrillic letters, giving a wider coverage of languages.
Comparing code positions C0 through FF (hexadecimal) in the two encodings—i.e.,
the last four rows of the tables in Figure 3-4, we notice how they have different schemes
for allocating the basic Cyrillic letters. Even if you don’t know the Cyrillic alphabet,
you probably see that Windows Cyrillic has uppercase letters first, and then lowercase,
whereas KOI8-R has them the other way around. In KOI8-R, the letters are not in the
Russian alphabetic order but placed so that if the most significant bit of each octet is
lost, the text turns into a coarse transliteration with the case of letters reversed: Cyrillic
“а” becomes Latin “A,” Cyrillic б becomes Latin “B,” Cyrillic ц becomes Latin “C,” etc.
This implies that if you have Russian text in Windows Cyrillic and your program in-
terprets it according to KOI8-R, or vice versa,