Умер Андрей Чернов, который создал кодировку KOI8-R для букв русского алфавита. Антон Носик считал его изобретение гениальным. Вот как он объяснял это в интервью Михаилу Козыреву на телеканале «Дождь» в июне 2016 года.
Текст незначительно отредактирован, чтобы было удобнее читать.
Самая большая проблема [для развития рунета] была, конечно, в том, что непонятно было, как записывать русский язык. Существовало 30 равноправных кодировок. Есть кодировка, которая называется Мас-кодировкой, а есть кодировка 1251, которая называется Windows-кодировкой, а есть 866, которая кодировка MS-DOS и OS/2, и есть еще кодировка ISO, и еще 25, ну и KOI8 (сначала KOI7, потом KOI8). Это кодировка обмена информацией.
Билл Гейтс 24 августа 1995 года нагнул весь мир и поимел, потому что он выпустил под песню The Rolling Stones «Satisfaction» Windows'95. Windows'95 просто за последующий год подмяла вообще компьютерный рынок всего мира в качестве новой графической операционной системы, в которой интернет встроен, и там была кодировка русского языка 1251. И все, и он всех передавил, даже тех, у кого ее не было. Потому что те, у кого ее не было, они написали конвертер.
Правильная кодировка была KOI8, конечно, потому что KOI8 Андрей Чернов писал с конкретной целью — если у вас есть 8 бит, то это 256 символов, 128 латиницей, 128 кириллицей. А если вы при протоколе передач данных попадаете в среду 7-битных байтов, то у вас отрезается восьмой бит.
Андрей Чернов / Wikimedia Commons
Одна буква записывается одним байтом. У байта 8 бит. 8 бит означают 256 вариантов, потому что это 2 в 8-й степени. Правильно? Если ты находишься в протоколе передачи данных, которые пропускают байты размером 8 бит, то мы с тобой общаемся так: 128 знаков латиницей и 128 кириллицей, итого 256, 2 в 8-й. А вот представь себе, что половина протоколов, которые живут в интернете, они 7-битные, они пропускают 7-битные байты. Значит, отрезается восьмой бит от байта. Значит, получается, что вариантов в два раза меньше, 2 в 7-й степени, всего 128.
Так вот, Андрей Чернов положил рядом первые 128 и вторые 128 символов из 256 и расставил русские буквы так, чтобы, когда восьмой бит отрезается, они бы превращались в такие же латинские. То есть в этом была гениальная логика, которой не было в CP 1251 Билла Гейтса. Гениальная логика, что если у тебя отрезался восьмой бит от русского, он остается русским, он просто латиницей записан, но тоже по-русски. Это была гениальная мысль.
Пример: «Русский Текст» превращается в «rUSSKIJ tEKST».
А Билл Гейтс навязал какую-то херню, которая, если ты отрежешь от нее бит, ты ее не можешь читать, в ней нет никакой логики, кроме того, что буквы похожи, русская «а» — на латинскую «а». Ну и что?
Пример: «МАШИНА» превращается в «L@XHM@».
7-битные байты
Во времена развития интернета в России в 1990-х годах почтовые серверы использовали 7-битные байты. Из-за этого возникала проблема с отображением кириллицы.