KOI (, from ) is a family of several code pages for the Cyrillic script.
A particular feature of the KOI code pages is that the text remains human-readable when the leftmost bit is stripped, should it inadvertently pass through equipment or software that can only deal with 7 bit wide characters. This is due to characters being placed in a special order (128 codepoints apart from the Latin letter they sound most similar to), which, however, does not correspond to the alphabetic order in any language that is written in Cyrillic and necessitates the use of lookup tables to perform sorting.
These encodings are derived from ASCII on the base of some correspondence between Latin and Cyrillic (nearly phonetical), which was already used in Russian dialect of Morse code and in MTK-2 telegraph code. The first 26 characters from à(0xE1) in KOI8-R are ÃÂ, ÃÂ, æ, ÃÂ, ÃÂ, ä, ÃÂ, ÃÂ¥, ÃÂ, ÃÂ, ÃÂ, ÃÂ, ÃÂ, ÃÂ, ÃÂ, ÃÂ, ï, à, á, â, ã, ÃÂ, ÃÂ, ì, ë, ÃÂ.
The original KOI encoding (1967) was a 7-bit code page named KOI-7 (ÃÂÃÂÃÂ-7), which did not contain lowercase letters. In KOI-7, the codes of the 31 or 32 Russian letters are ordered according to the Latin letters. Other code points are the same as in ASCII (however, the dollar sign $ (code point 24<sub>hex</sub>) may be replaced by the universal currency sign ä).
KOI-8 (ÃÂÃÂÃÂ-8), standardized in 1974 as GOST 19768, is an 8-bit extension of ASCII. Originally it only included 32 lowercase and 31 uppercase Russian letters.
Later derivatives of KOI-8 constitute the family of encodings variously known as KOI8, KOI 8 and KOI-8.
The family members are:
Additionally, GOST R 34.303-92 defines "KOI-8 V1" which is ISO-IR-153, and "KOI-8 N1" and "KOI-8 N2" which are variants of Code page 866. These do not follow the KOI-8 layout.
DKOI is an EBCDIC-based encoding used in ES EVM mainframes. It has been defined by several standards: GOST 19768-74 / ST SEV 358âÂÂ76, ST SEV 358-88 / GOST 19768âÂÂ93, CSN 36 9103.
There are two variants:
Some encodings are called KOI, but define Latin alphabets: