KOI8-Uは、キリル文字を使う言語であるウクライナ語をカバーするように設計された、8ビットの文字コードである。ロシア語とブルガリア語をカバーするKOI8-Rに基づくが、8つの図形文字を4つのウクライナ文字Ґ、Є、І、Їの大文字と小文字双方に置き換えている。
有名にならなかったISO 8859-5より、KOI8ははるかに広く使われ続けている。もう1つの広く使われているキリル文字コードはWindows-1251である。将来は、最終的にどちらもUnicodeに取って代わられるかもしれない。
ロシア語で、KOI8は Kod Obmena Informatsiey, 8 bit (Код Обмена Информацией, 8 бит) の略で、"情報交換用符号、8ビット" という意味である。
KOIシリーズの文字集合におけるロシア語のキリル文字は、ISO 8859-5のような自然なキリル文字のアルファベット順ではなく、ASCIIのラテン文字と対応する符号位置に疑似ローマ字順で並べられているという特性を持つ。さらに、大文字と小文字の符号位置は逆になっている。これは不自然に見えるかもしれないが、8ビット目が落ちて文字化けしても、大文字小文字を入れ替えた翻字をすることで通常のASCII端末上で文章をまだ読める (もしくは少なくとも解読できる) という役に立つ特性である。たとえば、KOI8-Uの "Русский Текст"(ルスキー・テクスト、ロシア語のテキストの意) は8ビット目を落とすと rUSSKIJ tEKSTになる。その一方で、文字コードでソートしても正しいキリル文字の順序にならないという欠点もある。
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x | 未使用 | |||||||||||||||
1x | ||||||||||||||||
2x | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ |
6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o |
7x | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | |
8x | ─ | │ | ┌ | ┐ | └ | ┘ | ├ | ┤ | ┬ | ┴ | ┼ | ▀ | ▄ | █ | ▌ | ▐ |
9x | ░ | ▒ | ▓ | ⌠ | ■ | ∙ | √ | ≈ | ≤ | ≥ | NBSP | ⌡ | ° | ² | · | ÷ |
Ax | ═ | ║ | ╒ | ё | є | ╔ | і | ї | ╗ | ╘ | ╙ | ╚ | ╛ | ґ | ╝ | ╞ |
Bx | ╟ | ╠ | ╡ | Ё | Є | ╣ | І | Ї | ╦ | ╧ | ╨ | ╩ | ╪ | Ґ | ╬ | © |
Cx | ю | а | б | ц | д | е | ф | г | х | и | й | к | л | м | н | о |
Dx | п | я | р | с | т | у | ж | в | ь | ы | з | ш | э | щ | ч | ъ |
Ex | Ю | А | Б | Ц | Д | Е | Ф | Г | Х | И | Й | К | Л | М | Н | О |
Fx | П | Я | Р | С | Т | У | Ж | В | Ь | Ы | З | Ш | Э | Щ | Ч | Ъ |
上記の表において、20は通常の空白 (SPACE) 文字であり、9Aはノーブレークスペース (NO-BREAK SPACE) である。
KOI8-Rとの違いは位置 0xA4; 0xA6; 0xA7; 0xAD; および 0xB4; 0xB6; 0xB7; 0xBD; にある。これらはロシア語に存在しない追加の文字からなる。
RFC 2319では文字95がU+2219 (∙) であるべきだと言っているが、Windows-1251のビュレット文字に合わせるためU+2022 (•) が使われる場合もある。
いくつかの参考文献には誤植があり、文字B4はU+0403であると誤って述べている (正しくはU+0404)。この誤植はRFC 2319のAppendix Aにも存在する (ただしRFC本文の表には正しいマッピングが示されている)。