КОИ-8

8-би́тный код для обме́на и обрабо́тки информа́ции (сокр. КОИ-8) — восьмибитная кодовая страница, являющаяся расширением кодировки КОИ-7 (объединением наборов Н0 и Н1) и вследствие этого совместимая с ISO 646 IRV (ASCII[a]), предназначенная для обмена и обработки информации с возможностью использования латинского и русского алфавитов. КОИ-8 была стандартизована в паре с ДКОИ в ГОСТ 19768—74[1], утратившем силу 1 июля 1993 года, и в настоящее время не определена ни в одном из действующих стандартов[b]. Один из вариантов КОИ-8 — KOI8-R — был широко распространён как основная русская кодировка в Unix-подобных операционных системах и в электронной почте, однако с конца 2000-х годов он постепенно выходит из употребления в связи с распространением Юникода.

Окно настройки экрана в Mandrake Linux 7.1, демонстрирующее отображение кириллицы в отсутствие кириллического шрифта благодаря использованию кодировки koi8

Разработчики КОИ-8 разместили буквы русского алфавита в верхней половине кодовой таблицы так, чтобы их позиции совпадали с позициями фонетически аналогичных им латинских букв в нижней половине таблицы, поэтому русские буквы расположены не в алфавитном порядке. Благодаря этому при обнулении старшего (восьмого) бита символов текста, написанного в КОИ-8 (в частности, из-за прохождения через семибитную среду), получается относительно читаемый текст, подобный транслиту; так, например, слова «Русский Текст» превращаются в «rUSSKIJ tEKST».

Существует несколько расширенных вариантов КОИ-8 с поддержкой различных кириллических алфавитов; тем не менее, основной диапазон кодовых позиций кириллицы (0xC0—0xFF), содержащий 32 русские буквы (все кроме Ё) в обоих регистрах (строчные и прописные), во всех вариантах остаётся неизменным. Поддержка русского алфавита реализована в KOI8-R, украинского — в KOI8-U, белорусского — в KOI8-RU, таджикского — в KOI8-T.

В 1990-х годах KOI8-R фактически стала стандартом кодирования русской кириллицы в Unix-подобных операционных системах и в электронной почте. Автор данной кодировки (RFC 1489) Андрей Чернов в начале 1990-х годов работал в компании «Демос» (сеть «Релком») и непосредственно участвовал в запуске и наладке первого Интернет-канала между Россией и западными странами. KOI8-R в итоге стала первой стандартизованной русской кодировкой в Интернете.

IETF утвердил несколько RFC по расширенным вариантам КОИ-8, впоследствии зарегистрированным IANA в своём списке[3]:

  • RFC 1489 — KOI8-R (с поддержкой русского алфавита);
  • RFC 2319 — KOI8-U (с поддержкой украинского алфавита);
  • RFC 1345 — ISO-IR-111 (с ошибкой в расположении основного диапазона).

В Microsoft Windows KOI8-R присвоен идентификатор 20866, KOI8-U — 21866[4].

Кодовые таблицы

Нижние половины кодовых таблиц (позиции 0x00—0x7F) полностью совпадают с ASCII. Числа под символами обозначают их шестнадцатеричный код в Юникоде.

KOI8-R (русская)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. ⁠─
2500
⁠│
2502
⁠┌
250C
⁠┐
2510
⁠└
2514
⁠┘
2518
⁠├
251C
⁠┤
2524
⁠┬
252C
⁠┴
2534
⁠┼
253C
⁠▀
2580
⁠▄
2584
⁠█
2588
⁠▌
258C
⁠▐
2590
9. ⁠░
2591
⁠▒
2592
⁠▓
2593
⁠⌠
2320
⁠■
25A0
⁠∙
2219
⁠√
221A
⁠≈
2248
⁠≤
2264
⁠≥
2265
⁠NBSP
00A0
⁠⌡
2321
⁠°
00B0
⁠²
00B2
⁠·
00B7
⁠÷
00F7
A. ⁠═
2550
⁠║
2551
⁠╒
2552
⁠ё
0451
⁠╓
2553
⁠╔
2554
⁠╕
2555
⁠╖
2556
⁠╗
2557
⁠╘
2558
⁠╙
2559
⁠╚
255A
⁠╛
255B
⁠╜
255C
⁠╝
255D
⁠╞
255E
B. ⁠╟
255F
⁠╠
2560
⁠╡
2561
⁠Ё
0401
⁠╢
2562
⁠╣
2563
⁠╤
2564
⁠╥
2565
⁠╦
2566
⁠╧
2567
⁠╨
2568
⁠╩
2569
⁠╪
256A
⁠╫
256B
⁠╬
256C
⁠©
00A9
C. ⁠ю
044E
⁠а
0430
⁠б
0431
⁠ц
0446
⁠д
0434
⁠е
0435
⁠ф
0444
⁠г
0433
⁠х
0445
⁠и
0438
⁠й
0439
⁠к
043A
⁠л
043B
⁠м
043C
⁠н
043D
⁠о
043E
D. ⁠п
043F
⁠я
044F
⁠р
0440
⁠с
0441
⁠т
0442
⁠у
0443
⁠ж
0436
⁠в
0432
⁠ь
044C
⁠ы
044B
⁠з
0437
⁠ш
0448
⁠э
044D
⁠щ
0449
⁠ч
0447
⁠ъ
044A
E. ⁠Ю
042E
⁠А
0410
⁠Б
0411
⁠Ц
0426
⁠Д
0414
⁠Е
0415
⁠Ф
0424
⁠Г
0413
⁠Х
0425
⁠И
0418
⁠Й
0419
⁠К
041A
⁠Л
041B
⁠М
041C
⁠Н
041D
⁠О
041E
F. ⁠П
041F
⁠Я
042F
⁠Р
0420
⁠С
0421
⁠Т
0422
⁠У
0423
⁠Ж
0416
⁠В
0412
⁠Ь
042C
⁠Ы
042B
⁠З
0417
⁠Ш
0428
⁠Э
042D
⁠Щ
0429
⁠Ч
0427
⁠Ъ
042A

KOI8-U (русско-украинская)

Здесь и далее приводятся только те строки кодовой таблицы, которые отличаются от KOI8-R.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
A. ⁠═
2550
⁠║
2551
⁠╒
2552
⁠ё
0451
⁠є
0454
⁠╔
2554
⁠і
0456
⁠ї
0457
⁠╗
2557
⁠╘
2558
⁠╙
2559
⁠╚
255A
⁠╛
255B
⁠ґ
0491
⁠╝
255D
⁠╞
255E
B. ⁠╟
255F
⁠╠
2560
⁠╡
2561
⁠Ё
0401
⁠Є
0404
⁠╣
2563
⁠І
0406
⁠Ї
0407
⁠╦
2566
⁠╧
2567
⁠╨
2568
⁠╩
2569
⁠╪
256A
⁠Ґ
0490
⁠╬
256C
⁠©
00A9

KOI8-RU (русско-белорусско-украинская)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
A. ⁠═
2550
⁠║
2551
⁠╒
2552
⁠ё
0451
⁠є
0454
⁠╔
2554
⁠і
0456
⁠ї
0457
⁠╗
2557
⁠╘
2558
⁠╙
2559
⁠╚
255A
⁠╛
255B
⁠ґ
0491
⁠ў
045E
⁠╞
255E
B. ⁠╟
255F
⁠╠
2560
⁠╡
2561
⁠Ё
0401
⁠Є
0404
⁠╣
2563
⁠І
0406
⁠Ї
0407
⁠╦
2566
⁠╧
2567
⁠╨
2568
⁠╩
2569
⁠╪
256A
⁠Ґ
0490
⁠Ў
040E
⁠©
00A9

KOI8-C (центральноазиатская)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. ⁠ғ
0493
⁠җ
0497
⁠қ
049B
⁠ҝ
049D
⁠ң
04A3
⁠ү
04AF
⁠ұ
04B1
⁠ҳ
04B3
⁠ҷ
04B7
⁠ҹ
04B9
⁠һ
04BB
⁠▀
2580
⁠ә
04D9
⁠ӣ
04E3
⁠ө
04E9
⁠ӯ
04EF
9. ⁠Ғ
0492
⁠Җ
0496
⁠Қ
049A
⁠Ҝ
049C
⁠Ң
04A2
⁠Ү
04AE
⁠Ұ
04B0
⁠Ҳ
04B2
⁠Ҷ
04B6
⁠Ҹ
04B8
⁠Һ
04BA
⁠⌡
2321
⁠Ә
04D8
⁠Ӣ
04E2
⁠Ө
04E8
⁠Ӯ
04EE
A. ⁠NBSP
00A0
⁠ђ
0452
⁠ѓ
0453
⁠ё
0451
⁠є
0454
⁠ѕ
0455
⁠і
0456
⁠ї
0457
⁠ј
0458
⁠љ
0459
⁠њ
045A
⁠ћ
045B
⁠ќ
045C
⁠ґ
0491
⁠ў
045E
⁠џ
045F
B. ⁠№
2116
⁠Ђ
0402
⁠Ѓ
0403
⁠Ё
0401
⁠Є
0404
⁠Ѕ
0405
⁠І
0406
⁠Ї
0407
⁠Ј
0408
⁠Љ
0409
⁠Њ
040A
⁠Ћ
040B
⁠Ќ
040C
⁠Ґ
0490
⁠Ў
040E
⁠Џ
040F

KOI8-T (таджикская)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. ⁠қ
049B
⁠ғ
0493
⁠‚
201A
⁠Ғ
0492
⁠„
201E
⁠…
2026
⁠†
2020
⁠‡
2021
⁠‰
2030
⁠ҳ
04B3
⁠‹
2039
⁠Ҳ
04B2
⁠ҷ
04B7
⁠Ҷ
04B6
9. ⁠Қ
049A
⁠‘
2018
⁠’
2019
⁠“
201C
⁠”
201D
⁠•
2022
⁠–
2013
⁠—
2014
⁠™
2122
⁠›
203A
A. ⁠NBSP
00A0
⁠ӯ
04EF
⁠Ӯ
04EE
⁠ё
0451
⁠¤
00A4
⁠ӣ
04E3
⁠¦
00A6
⁠§
00A7
⁠«
00AB
⁠¬
00AC
⁠SHY
00AD
⁠®
00AE
B. ⁠°
00B0
⁠±
00B1
⁠²
00B2
⁠Ё
0401
⁠Ӣ
04E2
⁠
00B6
⁠·
00B7
⁠№
2116
⁠»
00BB
⁠©
00A9

KOI8-O, KOI8-S (русская дореформенная орфография)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. ⁠Ђ
0402
⁠Ѓ
0403
⁠¸
00B8
⁠ѓ
0453
⁠„
201E
⁠…
2026
⁠†
2020
⁠§
00A7
⁠€
20AC
⁠¨
00A8
⁠Љ
0409
⁠‹
2039
⁠Њ
040A
⁠Ќ
040C
⁠Ћ
040B
⁠Џ
040F
9. ⁠ђ
0452
⁠‘
2018
⁠’
2019
⁠“
201C
⁠”
201D
⁠•
2022
⁠–
2013
⁠—
2014
⁠£
00A3
⁠·
00B7
⁠љ
0459
⁠›
203A
⁠њ
045A
⁠ќ
045C
⁠ћ
045B
⁠џ
045F
A. ⁠NBSP
00A0
⁠ѵ
0475
⁠ѣ
0463
⁠ё
0451
⁠є
0454
⁠ѕ
0455
⁠і
0456
⁠ї
0457
⁠ј
0458
⁠®
00AE
⁠™
2122
⁠«
00AB
⁠ѳ
0473
⁠ґ
0491
⁠ў
045E
⁠´
00B4
B. ⁠°
00B0
⁠Ѵ
0474
⁠Ѣ
0462
⁠Ё
0401
⁠Є
0404
⁠Ѕ
0405
⁠І
0406
⁠Ї
0407
⁠Ј
0408
⁠№
2116
⁠¢
00A2
⁠»
00BB
⁠Ѳ
0472
⁠Ґ
0490
⁠Ў
040E
⁠©
00A9

ISO-IR-111, KOI8-E

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
A. ⁠NBSP
00A0
⁠ђ
0452
⁠ѓ
0453
⁠ё
0451
⁠є
0454
⁠ѕ
0455
⁠і
0456
⁠ї
0457
⁠ј
0458
⁠љ
0459
⁠њ
045A
⁠ћ
045B
⁠ќ
045C
⁠SHY
00AD
⁠ў
045E
⁠џ
045F
B. ⁠№
2116
⁠Ђ
0402
⁠Ѓ
0403
⁠Ё
0401
⁠Є
0404
⁠Ѕ
0405
⁠І
0406
⁠Ї
0407
⁠Ј
0408
⁠Љ
0409
⁠Њ
040A
⁠Ћ
040B
⁠Ќ
040C
⁠¤
00A4
⁠Ў
040E
⁠Џ
040F

KOI8-Unified, KOI8-F

Кодировка KOI8-F предложена компанией Fingertip Software[5]. Неразрывный пробел размещён сразу в двух кодовых позициях — 0x9A и 0xA0.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
9. ⁠░
2591
⁠‘
2018
⁠’
2019
⁠“
201C
⁠”
201D
⁠•
2022
⁠–
2013
⁠—
2014
⁠©
00A9
⁠™
2122
⁠NBSP
00A0
⁠»
00BB
⁠®
00AE
⁠«
00AB
⁠·
00B7
⁠¤
00A4
A. ⁠NBSP
00A0
⁠ђ
0452
⁠ѓ
0453
⁠ё
0451
⁠є
0454
⁠ѕ
0455
⁠і
0456
⁠ї
0457
⁠ј
0458
⁠љ
0459
⁠њ
045A
⁠ћ
045B
⁠ќ
045C
⁠ґ
0491
⁠ў
045E
⁠џ
045F
B. ⁠№
2116
⁠Ђ
0402
⁠Ѓ
0403
⁠Ё
0401
⁠Є
0404
⁠Ѕ
0405
⁠І
0406
⁠Ї
0407
⁠Ј
0408
⁠Љ
0409
⁠Њ
040A
⁠Ћ
040B
⁠Ќ
040C
⁠Ґ
0490
⁠Ў
040E
⁠Џ
040F

KOI8-M

Кодировка KOI8-M представляет собой кодировку KOI8-R с символами псевдографики, расположенными в порядке, как в первоначальной (разработанной в ВЦ АН СССР) версии альтернативной кодировки.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
8. ⁠░
2591
⁠▒
2592
⁠▓
2593
⁠│
2502
⁠┤
2524
⁠╡
2561
⁠╢
2562
⁠╖
2556
⁠╕
2555
⁠╣
2563
⁠║
2551
⁠╗
2557
⁠╝
255D
⁠╜
255C
⁠╛
255B
⁠┐
2510
9. ⁠└
2514
⁠┴
2534
⁠┬
252C
⁠├
251C
⁠─
2500
⁠┼
253C
⁠╞
255E
⁠╟
255F
⁠╚
255A
⁠╔
2554
⁠╩
2569
⁠╦
2566
⁠╠
2560
⁠═
2550
⁠╬
256C
⁠╧
2567
A. ⁠╨
2568
⁠╤
2564
⁠╥
2565
⁠╙
2559
⁠╘
2558
⁠╒
2552
⁠╓
2553
⁠╫
256B
⁠╪
256A
⁠┘
2518
⁠┌
250C
⁠█
2588
⁠▄
2584
⁠▌
258C
⁠▐
2590
⁠▀
2580
B. ⁠Ё
0401
⁠ё
0451
⁠🮣
1FBA3
⁠🮢
1FBA2
⁠🮠
1FBA0
⁠🮡
1FBA1
⁠→
2192
⁠←
2190
⁠↓
2193
⁠↑
2191
⁠÷
00F7
⁠±
00B1
⁠№
2116
⁠¤
00A4
⁠■
25A0
⁠NBSP
00A0

Некириллические варианты КОИ-8

В некоторых странах — членах СЭВ создавались модификации КОИ-8 для национальных вариантов латиницы. Основная идея была та же — при «срезании» старшего бита текст должен оставаться более или менее понятным.

Примечания

Комментарии

  1. ↑ Согласно ГОСТ 19768—74, в КОИ-8 в кодовой позиции 0x24 расположен знак валюты (¤), а не знак доллара ($). При создании расширений была произведена обратная замена, требуемая для полной совместимости с ASCII.
  2. ↑ В действующем сейчас ГОСТ Р 34.303—92[2] определены другие кодировки КОИ-8 (Н1, Н2 и В1), не имеющие отношения к данной.

Источники

  1. ↑ ГОСТ 19768—74 «Машины вычислительные и системы обработки данных. Коды 8-битные для обмена и обработки информации» // Машины вычислительные, системы обработки и аппаратура передачи данных. ГОСТ 19767—74 — ГОСТ 19769—74, ГОСТ 13052—74. — М.: Изд-во стандартов, 1974. — С. 26—34. — 43 с. — (Государственные стандарты СССР). — 10 000 экз. — [Архивировано 12 апреля 2025 года.]
  2. ↑ ГОСТ Р 34.303—92 (ИСО 4873—86) «Информационная технология. Наборы 8-битных кодированных символов. 8-битный код обмена и обработки информации».
  3. ↑ Internet Assigned Numbers Authority. Character Sets (англ.). Дата обращения: 18 ноября 2024. Архивировано 16 ноября 2024 года.
  4. ↑ Microsoft Corporation. Code Page Identifiers (англ.). Дата обращения: 29 января 2025. Архивировано 26 января 2025 года.
  5. ↑ KOI8 Unified (англ.). Fingertip Software. Дата обращения: 11 февраля 2020. Архивировано из оригинала 9 мая 2008 года.

Ссылки