# KOI8-U

KOI8-U è un sistema di codifica di caratteri a 8-bit progettato per essere adoperato con l'ucraino, lingua che utilizza l'alfabeto cirillico. Il KOI8-U, il cui nome sta per Kod Obmena Informaciej, 8 bit (in russo Код Обмена Информацией, 8 бит, Codice per lo scambio di informazioni, 8 bit), è basato sul KOI8-R, sistema di codifica basato sull'originale KOI8 e progettato per l'utilizzo con il russo e con il bulgaro, di cui sostituisce otto caratteri grafici con quattro lettere ucraine nelle loro versioni maiuscola e minuscola: Ґ, Є, І e Ї.
Il KOI8 ed il CP-1251, un altro sistema di codifica di caratteri per le lingue che utilizzano l'alfabeto cirillico, sono ancora molto più utilizzati dell'ISO 8859-5, che in effetti non ha mai trovato grande utilizzo, anche se oggi, ormai, nella stragrande maggioranza degli utilizzi moderni, viene loro preferito l'Unicode.
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-U "Русский Текст" 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.
Nel sistema operativo Microsoft Windows, il numero di code page assegnato al sistema KOI8-U è 21866, nei sistemi di IBM è invece il numero 1186.

## Tabella

La seguente tabella mostra il sistema di codifica KOI8-U. 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-U :
| | -0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -A | -B | -C | -D | -E | -F |
| 0- | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 1- | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 2- | 0020 SP 32 | 0021 ! 33 | 0022 " 34 | 0023 # 35 | 0024 $ 36 | 0025 % 37 | 0026 & 38 | 0027 ' 39 | 0028 ( 40 | 0029 ) 41 | 002A * 42 | 002B + 43 | 002C , 44 | 002D - 45 | 002E . 46 | 002F / 47 |
| 3- | 0030 0 48 | 0031 1 49 | 0032 2 50 | 0033 3 51 | 0034 4 52 | 0035 5 53 | 0036 6 54 | 0037 7 55 | 0038 8 56 | 0039 9 57 | 003A : 58 | 003B ; 59 | 003C < 60 | 003D = 61 | 003E > 62 | 003F ? 63 |
| 4- | 0040 @ 64 | 0041 A 65 | 0042 B 66 | 0043 C 67 | 0044 D 68 | 0045 E 69 | 0046 F 70 | 0047 G 71 | 0048 H 72 | 0049 I 73 | 004A J 74 | 004B K 75 | 004C L 76 | 004D M 77 | 004E N 78 | 004F O 79 |
| 5- | 0050 P 80 | 0051 Q 81 | 0052 R 82 | 0053 S 83 | 0054 T 84 | 0055 U 85 | 0056 V 86 | 0057 W 87 | 0058 X 88 | 0059 Y 89 | 005A Z 90 | 005B [ 91 | 005C \ 92 | 005D ] 93 | 005E ^ 94 | 005F _ 95 |
| 6- | 0060 ` 96 | 0061 a 97 | 0062 b 98 | 0063 c 99 | 0064 d 100 | 0065 e 101 | 0066 f 102 | 0067 g 103 | 0068 h 104 | 0069 i 105 | 006A j 106 | 006B k 107 | 006C l 108 | 006D m 109 | 006E n 110 | 006F o 111 |
| 7- | 0070 p 112 | 0071 q 113 | 0072 r 114 | 0073 s 115 | 0074 t 116 | 0075 u 117 | 0076 v 118 | 0077 w 119 | 0078 x 120 | 0079 y 121 | 007A z 122 | 007B { 123 | 007C | 124 | 007D } 125 | 007E ~ 126 | 127 |
| 8- | 2500 ─ 128 | 2502 │ 129 | 250C ┌ 130 | 2510 ┐ 131 | 2514 └ 132 | 2518 ┘ 133 | 251C ├ 134 | 2524 ┤ 135 | 252C ┬ 136 | 2534 ┴ 137 | 253C ┼ 138 | 2580 ▀ 139 | 2584 ▄ 140 | 2588 █ 141 | 258C ▌ 142 | 2590 ▐ 143 |
| 9- | 2591 ░ 144 | 2592 ▒ 145 | 2593 ▓ 146 | 2320 ⌠ 147 | 25A0 ■ 148 | 2219 ∙ 149 | 221A √ 150 | 2248 ≈ 151 | 2264 ≤ 152 | 2265 ≥ 153 | 00A0 NBSP 154 | 2321 ⌡ 155 | 00B0 ° 156 | 00B2 ² 157 | 00B7 · 158 | 00F7 ÷ 159 |
| A- | 2550 ═ 160 | 2551 ║ 161 | 2552 ╒ 162 | 0451 ё 163 | 0454 є 164 | 2554 ╔ 165 | 0456 і 166 | 0457 ї 167 | 2557 ╗ 168 | 2558 ╘ 169 | 2559 ╙ 170 | 255A ╚ 171 | 255B ╛ 172 | 0491 ґ 173 | 255D ╝ 174 | 255E ╞ 175 |
| B- | 255F ╟ 176 | 2560 ╠ 177 | 2561 ╡ 178 | 0401 Ё 179 | 0404 Є 180 | 2563 ╣ 181 | 0406 І 182 | 0407 Ї 183 | 2566 ╦ 184 | 2567 ╧ 185 | 2568 ╨ 186 | 2569 ╩ 187 | 256A ╪ 188 | 0490 Ґ 189 | 256C ╬ 190 | 00A9 © 191 |
| C- | 044E ю 192 | 0430 а 193 | 0431 б 194 | 0446 ц 195 | 0434 д 196 | 0435 е 197 | 0444 ф 198 | 0433 г 199 | 0445 х 200 | 0438 и 201 | 0439 й 202 | 043A к 203 | 043B л 204 | 043C м 205 | 043D н 206 | 043E о 207 |
| D- | 043F п 208 | 044F я 209 | 0440 р 210 | 0441 с 211 | 0442 т 212 | 0443 у 213 | 0436 ж 214 | 0432 в 215 | 044C ь 216 | 044B ы 217 | 0437 з 218 | 0448 ш 219 | 044D э 220 | 0449 щ 221 | 0447 ч 222 | 044A ъ 223 |
| E- | 042E Ю 224 | 0410 А 225 | 0411 Б 226 | 0426 Ц 227 | 0414 Д 228 | 0415 Е 229 | 0424 Ф 230 | 0413 Г 231 | 0425 Х 232 | 0418 И 233 | 0419 Й 234 | 041A К 235 | 041B Л 236 | 041C М 237 | 041D Н 238 | 041E О 239 |
| F- | 041F П 240 | 042F Я 241 | 0420 Р 242 | 0421 С 243 | 0422 Т 244 | 0423 У 245 | 0416 Ж 246 | 0412 В 247 | 042C Ь 248 | 042B Ы 249 | 0417 З 250 | 0428 Ш 251 | 042D Э 252 | 0429 Щ 253 | 0427 Ч 254 | 042A Ъ 255 |
| | -0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -A | -B | -C | -D | -E | -F |
Nella tabella soprastante, il corrispettivo del codice Unicode 20 è il carattere spazio mentre del codice Unicode A0 è lo spazio unificatore.
Le differenze dal KOI8-R consistono nelle posizioni 0xA4; 0xA6; 0xA7; 0xAD; and 0xB4; 0xB6; 0xB7; 0xBD; occupate da lettere che non compaiono nella lingua russa.
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.
Alcune versioni riportate contengono un errore circa il carattere in posizione 0xB4, a cui viene assegnato il codice Unicode U+0403 piuttosto che il corretto U+0404. Un esempio di questo si trova nall'appendice A dell'RFC 2319 (la tabella nel testo principale riporta comunque il codice corretto).