KOI
KOI ( КОИ, Код Обмена Информацией,  КОІ, Код Обміну Інформацією) je množina několika způsobů kódování textů v cyrilici. Pořadí písmen cyrilice není azbukové, ale abecední, aby text zůstal dostatečně čitelný i na zařízeních bez podpory kódování KOI. Existuje starší sedmibitová varianta kódování KOI7 a novější osmibitová varianta KOI8.

V bývalém Československu byla později množina kódování KOI8 rozšířena i o způsoby kódování latinky pro písmena, která nejsou součástí ASCII.

KOI7 
KOI7 je sedmibitové kódování, které vychází z ASCII, ale místo malých písmen latinky obsahuje velká písmena cyrilice. KOI7 se používalo například na systémech RSX-11 a RT-11.

Kromě toho byla definována varianta KOI7 se dvěma znakovými sadami, mezi kterými se v průběhu zpracování textů přepínalo. Výchozí znakovou sadou je znaková sada pro latinku ISO 646.irv:1983 a druhou znakovou sadou je znaková sada pro cyrilici ISO 5427. Znak s kódem 16 osmičkově přepíná na znakovou sadu ISO 5427, znak s kódem 17 osmičkově přepíná na znakovou sadu ISO 646. Znaková sada ISO 646 byla označována jako KOI-7 N0, znaková sada ISO 5427 byla označována jako KOI-7 N1.

KOI8 
Kódování KOI8 je osmibitové kódování, které zachovává ASCII, znaky cyrilice se nachází v horní polovině kódu (znaky 128 - 255). Původní kódování KOI8 definuje pouze vlastní písmena cyrilice a neobsahuje písmeno ё a velký tvrdý znak. Stejně jako v ASCII se odpovídající kód velkých a malých písmen liší pouze v jednom bitu, ovšem pro neruská písmena se nejedná o totožný bit a v tádžické variantě to neplatí pro úplně všechna písmena.

Postupem času vzniklo několik variant KOI8:
 KOI8-R - pro kódování ruštiny,
 KOI8-U - pro kódování ruštiny a ukrajinštiny,
 KOI8-RU - pro kódování ruštiny, ukrajinštiny a běloruštiny,
 KOI8-C - pro kódování neslovanských jazyků (označovaná jako kavkazská varianta),
 KOI8-T - pro tádžičtinu,
 KOI8-O - pro kódování staré ruštiny,
 ISO-IR-111, KOI8-E - obsahuje chybu v kódování znaků AD a BD,
 KOI8-Unified, KOI8-F - varianta navržená Fingertip Software.

KOI8 pro latinku 
V ČSN 36 9103 je definováno sedm kódování, z nichž mezi KOI8 patří: 
 KOI8-CS - pro kódování češtiny a slovenštiny,
 KOI8-K1
 KOI8-L2 - registrováno jako ISO IR 139

KOI8-CS 
KOI8-CS je definováno v ČSN 36 9103. V kódování je písmeno ch definováno jako samostatné písmeno. Přestože bylo kódování KOI8-CS normalizováno, používalo se zřídka, bylo používáno na osmibitových mikropočítačích s operačním systémem CP/M. Vlastností kódování je, že české znaky s diakritikou je ve většině případů možné získat nastavením osmého bitu, výjimkou jsou písmena, které mohou mít více diakritických znamének, např. z písmen Ě a É se výjimka týká písmena É.

V  jsou jako součást KOI8-CS uvedeny ještě znaky:
 128/80 - Ç,
 142/8E - ¤,
 168/A8 - °,
 173/AD - §.

Na různých počítačích byly implementovány různé verze KOI8-čs odlišně, např. pro počítač Sharp MZ-800 existovaly dvě různé implementace:
 implementace obsahující některá řecká písmena a symboly,
 implementace obsahující písmena cyrilice.
Ani jedna z těchto dvou implementací neobsahuje písmeno CH, místo něho jsou obsaženy grafické symboly. Ve variantě obsahující písmena cyrilice na rozdíl od jiných kódování KOI jsou písmena cyrilice řazena nikoliv abecedně, ale azbukově, a mimo to nejsou obsažena písmena, která jsou nahraditelná písmeny latinky.

Pozn.: Znaky ?? ve výše uvedených tabulkách nahrazují znaky, které ve zdroji  nejsou čitelné.

Upravenou verzi kódování KOI8 CS používá program Datalog pro počítače Sinclair ZX Spectrum. Svoje úpravy do KIO8 CS zavedl program České prostředí III pro podporu češtiny na počítačích Amiga.

Reference

Externí odkazy 
 http://koi8.pp.ru/ 
 České ASCII tabulky (0x80 - 0xFF) 
 Locale::RecodeData::CSN_369103 na search.cpan.org - popis znakové sady KOI8 L2 registrované jako CSN_369103

Standardy
Počítačová terminologie
Kódování znaků
Zkratky