KOI8-RU
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).[1][2]
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.[3]
Tabella
modificaLa seguente tabella mostra il sistema di codifica KOI8-RU.[3] Ogni carattere è rappresentato al centro della cella con il suo equivalente Unicode in alto e il suo codice decimale in basso.
Caratteri di controllo | Punteggiatura | ||
Cifre numeriche | Caratteri alfabetici | ||
Caratteri internazionali | Caratteri non definiti | ||
Caratteri grafici | Punteggiatura estesa |
-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 i 166 |
0457 ї 167 |
2557 ╗ 168 |
2558 ╘ 169 |
2559 ╙ 170 |
255A ╚ 171 |
255B ╛ 172 |
0491 ґ 173 |
045D ў 174 |
255E ╞ 175 |
B- | 255F ╟ 176 |
2560 ╠ 177 |
2561 ╡ 178 |
0401 Ё 179 |
0404 Є 180 |
2563 ╣ 181 |
0406 I 182 |
0407 Ї 183 |
2566 ╦ 184 |
2567 ╧ 185 |
2568 ╨ 186 |
2569 ╩ 187 |
256A ╪ 188 |
0490 Ґ 189 |
040D Ў 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 |
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[4] 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
modifica- ^ Guido Flohr, Locale::RecodeData::KOI8_RU - Conversion routines for KOI8-RU, su CPAN libintl-perl, 2006. URL consultato il 23 gennaio 2018.
- ^ Mark Leisher, KOI8-RU Belorusian/Ukrainian Cyrillic to Unicode 2.1 mapping table (TXT), su math.nmsu.edu, Department of Mathematical Sciences, New Mexico State University, 20 dicembre 1999. URL consultato il 23 gennaio 2018 (archiviato dall'url originale il 19 febbraio 2017).
- ^ a b CPGID 01167 - Code page identifiers, su www-01.ibm.com, IBM. URL consultato il 23 gennaio 2018.
- ^ RFC 2319 - Ukrainian Character Set KOI8-U, su tools.ietf.org, IETF, aprile 1998. URL consultato il 23 gennaio 2018.