Il KOI8-RU è un sistema di codifica di caratteri a 8-bit progettato per essere adoperato con il russo, l'ucraino e il bielorusso, nonché con tutte quelle lingue che utilizzano l'alfabeto cirillico. Il sistema originale, il KOI8, il cui nome sta per Kod Obmena Informaciej, 8 bit (in russo Код Обмена Информацией, 8 бит, Codice per lo scambio di informazioni, 8 bit), fu progettato dalle autorità sovietiche nel 1974 e da allora ne sono stati creati vari derivati, tra cui il KOI8-U, che aggiunge al KOI8 i caratteri dell'ucraino, e il KOI8-R, utilizzato per il russo e per il bulgaro. Proprio su quest'ultimo è basato il KOI8-RU, nel quale dieci caratteri grafici del KOI8-R sono sostituiti da quattro lettere ucraine e una bielorussa, in minuscolo e in maiuscolo: Ґ, Є, І, Ї e Ў (l'unica lettera cirillica caratteristica del bielorusso).
Il KOI8 ed i sistemi da lui derivati hanno la particolarità di avere le lettere cirilliche disposte in ordine pseudo-latino piuttosto che nel comune ordine dell'alfabeto cirillico come hanno per esempio l'ISO 8859-5 e l'Unicode. Sebbene questo possa sembrare anti intuitivo, questa caratteristica risulta utile per il fatto che se l'ottavo bit viene eliminato, il testo è parzialmente leggibile utilizzando il sistema ASCII e può essere convertito in un testo in KOI7 sintatticamente corretto. Per esempio se dalla scritta in KOI8-RU "Русский Текст" viene eliminato l'ottavo bit, essa diventa rUSSKIJ tEKST ("Testo russo") ed un tentativo di interpretare tale stringa con il KOI7 porta a "РУССКИЙ ТЕКСТ". Il KOI8 fu creato basandosi sul codice Morse russo (che a sua volta fu creato dal codice Morse internazionale basandosi sulle assonanze) e la connessione riguardante l'ordine delle lettere tra il codice Morse russo e quello internazionale è la stessa che esiste tra il KOI8 e l'ASCII.
Nei sistemi di IBM il numero di code page assegnato al sistema KOI8-RU è 1167.
Tabella La seguente tabella mostra il sistema di codifica KOI8-RU. Ogni carattere è rappresentato al centro della cella con il suo equivalente Unicode in alto e il suo codice decimale in basso.
+ Legenda Caratteri di controllo Punteggiatura Cifre numeriche Caratteri alfabetici Caratteri internazionali Caratteri non definiti Caratteri grafici Punteggiatura estesa
+ KOI8-RU -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F0-01234567891011121314151-161718192021222324252627282930312-0020SP320021!330022"340023#350024$360025%370026&380027'390028(400029)41002A*42002B+43002C,44002D-45002E.46002F/473-0030048003114900322500033351003445200355530036654003775500388560039957003A:58003B;59003C<60003D=61003E>62003F?634-0040@640041A650042B660043C670044D680045E690046F700047G710048H720049I73004AJ74004BK75004CL76004DM77004EN78004FO795-0050P800051Q810052R820053S830054T840055U850056V860057W870058X880059Y89005AZ90005B[91005C\92005D]93005E^94005F_956-0060`960061a970062b980063c990064d1000065e1010066f1020067g1030068h1040069i105006Aj106006Bk107006Cl108006Dm109006En110006Fo1117-0070p1120071q1130072r1140073s1150074t1160075u1170076v1180077w1190078x1200079y121007Az122007B{123007C|124007D}125007E~1261278-2500─1282502│129250C┌1302510┐1312514└1322518┘133251C├1342524┤135252C┬1362534┴137253C┼1382580▀1392584▄1402588█141258C▌1422590▐1439-2591░1442592▒1452593▓1462320⌠14725A0■1482219∙149221A√1502248≈1512264≤1522265≥15300A0NBSP1542321⌡15500B0°15600B2²15700B7·15800F7÷159A-2550═1602551║1612552╒1620451ё1630454є1642554╔1650456i1660457ї1672557╗1682558╘1692559╙170255A╚171255B╛1720491ґ173045Dў174255E╞175B-255F╟1762560╠1772561╡1780401Ё1790404Є1802563╣1810406I1820407Ї1832566╦1842567╧1852568╨1862569╩187256A╪1880490Ґ189040DЎ19000A9©191 C-044Eю1920430а1930431б1940446ц1950434д1960435е1970444ф1980433г1990445х2000438и2010439й202043Aк203043Bл204043Cм205043Dн206043Eо207D-043Fп208044Fя2090440р2100441с2110442т2120443у2130436ж2140432в215044Cь216044Bы2170437з2180448ш219044Dэ2200449щ2210447ч222044Aъ223E-042EЮ2240410А2250411Б2260426Ц2270414Д2280415Е2290424Ф2300413Г2310425Х2320418И2330419Й234041AК235041BЛ236041CМ237041DН238041EО239F-041FП240042FЯ2410420Р2420421С2430422Т2440423У2450416Ж2460412В247042CЬ248042BЫ2490417З2500428Ш251042DЭ2520429Щ2530427Ч254042AЪ255 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
Come si vede dalla tabella, la differenza tra il KOI8-RU ed il KOI8-R sta nelle posizioni 0xA4, 0xA6, 0xA7, 0xAD, 0xAE, 0xB4, 0xB6, 0xB7, 0xBD e 0xBE, dove sono presenti lettere non esistenti nella lingua russa.
Nella tabella soprastante, il corrispettivo del codice Unicode 20 è il carattere spazio mentre del codice Unicode A0 è lo spazio unificatore.
Anche se l'RFC 2319 dice che il carattere in posizione 0x95 ha corrispettivo Unicode U+2219 (∙), esso può anche avere U+2022 (•) in modo da farlo coincidere con il carattere punto elenco del Windows-1251.
Note
Voci correlate ISO/IEC 8859-5 KOI7 KOI8-R KOI8-U Windows-1251
Categoria:Repertori di caratteri