Открыть сервис

KOI8-R

KOI8-R (Код Обмена Информацией, 8-битный, Русский) — восьмибитная кодовая страница (набор символов), разработанная для кодирования букв кириллицы (русского алфавита) и символов латиницы. Является стандартом де-факто для представления текстов на русском языке в компьютерных системах и сетях, особенно в среде Unix-подобных операционных систем, в 1980—1990-х годах. Входит в семейство кодировок KOI-8, основанных на принципе транслитерации кириллицы в латиницу.

История

Предпосылки создания

До появления KOI8-R для представления кириллицы в компьютерах использовались различные нестандартные решения, в основном семибитные кодировки, такие как КОИ-7 (КОИ-7 Н0, КОИ-7 Н1, КОИ-7 Н2). Семибитные кодировки имели ограниченный набор символов (до 128) и не могли одновременно содержать все буквы русского и латинского алфавитов, а также знаки препинания. С переходом к восьмибитным системам (IBM PC, Apple Macintosh) возникла необходимость в едином стандарте для русскоязычных пользователей.

Разработка и стандартизация

KOI8-R была разработана в 1980-х годах в рамках работ по стандартизации кодировок для советских компьютеров и систем передачи данных. В отличие от других восьмибитных кириллических кодировок (например, CP866, Windows-1251), KOI8-R была ориентирована на использование в сетях и Unix-системах, где доминировала кодировка ASCII. Разработчики стремились сохранить совместимость с ASCII и обеспечить возможность передачи русскоязычных текстов через каналы, поддерживающие только 7-битные коды.

В 1990-х годах KOI8-R стала одной из основных кодировок в Рунете, особенно на серверах под управлением Unix (FreeBSD, Linux). Она была включена в стандарты RFC (Request for Comments) как RFC 1489 (1993 год), что официально закрепило её статус.

Распространение и упадок

С распространением операционных систем Microsoft Windows и стандартизацией кодировки Windows-1251 (CP1251), а затем и Unicode (UTF-8), KOI8-R постепенно утратила своё доминирующее положение. Однако в 1990-х — начале 2000-х годов она широко использовалась в электронной почте (в заголовках и телах писем), в телеконференциях Usenet, на FTP-серверах и в консольных приложениях Unix. В настоящее время KOI8-R считается устаревшей, но всё ещё встречается в старых системах, архивах и некоторых специализированных программах.

Устройство и принцип кодирования

Структура таблицы

KOI8-R является 8-битной кодировкой, то есть каждый символ кодируется одним байтом (8 бит), что позволяет представить до 256 различных символов. Первые 128 кодов (0x00—0x7F) полностью соответствуют стандарту ASCII (латинские буквы, цифры, знаки препинания, управляющие символы).

Вторая половина таблицы (0x80—0xFF) содержит символы кириллицы, а также дополнительные знаки (псевдографика, символы валют, математические знаки). Ключевой особенностью KOI8-R является то, что русские буквы расположены в верхней части таблицы (коды 0xE0—0xFF) таким образом, что при удалении старшего бита (превращении 8-битного кода в 7-битный) русские буквы преобразуются в соответствующие латинские по принципу транслитерации (например, «А» (0xE1) становится «a» (0x61), «Б» (0xE2) — «b» (0x62) и т. д.). Это позволяло передавать русскоязычные тексты через системы, поддерживающие только 7-битные коды (например, старые модемы или почтовые протоколы), с минимальными потерями читаемости.

Таблица символов (основная часть)

Код (HEX)СимволКод (HEX)СимволКод (HEX)СимволКод (HEX)Символ
0x80—0x8F─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ▀ ▄ █ ▌ ▐0xC0—0xCFю а б ц д е ф г х и й к л м н о0xD0—0xDFп я р с т у ж в ь ы з ш э щ ч ъ0xE0—0xEFЮ А Б Ц Д Е Ф Г Х И Й К Л М Н О0xF0—0xFFП Я Р С Т У Ж В Ь Ы З Ш Э Щ Ч Ъ

Примечание: В таблице приведены не все символы; полный набор включает знаки препинания, цифры, латиницу и псевдографику.

Классификация и варианты

KOI8-R является основным вариантом семейства KOI-8 для русского языка. Существуют и другие варианты, предназначенные для других кириллических языков:

Все варианты сохраняют общий принцип расположения кириллицы в верхней части таблицы.

Применение

Unix-подобные системы

KOI8-R была стандартной кодировкой для консоли и файловых систем в BSD-системах и ранних дистрибутивах Linux. Многие программы (например, текстовые редакторы vi, emacs, почтовые клиенты pine, mutt) по умолчанию использовали KOI8-R. До сих пор в некоторых Unix-системах можно встретить файлы с кодировкой KOI8-R.

Электронная почта и Usenet

В 1990-х годах KOI8-R была одной из основных кодировок для русскоязычной электронной почты. Она использовалась в заголовках MIME (Content-Type: text/plain; charset=KOI8-R) и в телах писем. В телеконференциях Usenet (например, relcom.*) KOI8-R также была распространена.

Веб-сайты

В первые годы существования Рунета (1994—2000) многие сайты использовали KOI8-R. С переходом на UTF-8 и стандартизацию Windows-1251 она практически вытеснена, но некоторые старые сайты или архивы могут использовать KOI8-R.

Программное обеспечение

Некоторые программы, особенно написанные для Unix, поддерживают KOI8-R. Например, текстовые процессоры (WordPerfect для Unix), системы управления базами данных (MySQL, PostgreSQL — в старых версиях), архиваторы (tar, gzip) могут корректно обрабатывать файлы в KOI8-R.

Критика и недостатки

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →