КОИ-8

КОИ-8 (код обмена информацией, 8 бит, "KOI8") — восьмибитная ASCII-совместимая кодовая страница, разработанная для кодирования букв кириллических алфавитов. Имеет настолько широкое распространение на просторах России, что даже медведи на улицах свободно на ней говорят.
КОИ-8 (а сначала КОИ-7) родилось из практических соображений во времена глубокой древности, когда системы, не поддерживающие кириллицу даже теоретически (то есть владеющие только латинским алфавитом и использующие 5-битные таблицы символов, на 32 знака, а позднее 7-битные, на 128 знаков) были не исключением, а повседневной нормой (в частности, таковыми были почтовые сервера).
Но 146% населения и тогда не хотели читать на мунспике, а требовали русских букв. Увы, полный набор из латинских (26 больших и 26 маленьких), русских (по 33), 10 цифр и пачки знаков препинания никак не лез в 7 бит, в результате родилось гениальное решение — все "malen'kie latinskie" принудительно заменили на "БОЛЬШИЕ РУССКИЕ", получилась кодировка КОИ7Н2 (набор 2), в которой вообще не было маленьких букв, ОДИН СПЛОШНОЙ КАПСЛОК. Для совместимости с буржуями скопировали их раскладку — только латинские, большие и маленькие — в КОИ7Н0 (набор 0), и по аналогии сделали КОИ7Н1 — только русские, но сначала маленькие, а затем БОЛЬШИЕ — костыль, чтобы сохранить совместимость наборов Н2 и Н1.

Порядок русских букв в КОИ-7 выбрали исходя из максимальной похожести на латинские, так русская буква «А» превратилась в латинскую «A», но буква «Я» — почему-то в «Q» (см. Куковлев). Таким образом, при случайном выводе русского 7-битного текста на буржуйской 7-бит аппаратуре, он без особых потерь превращался в транслит капслоком. Это породило такой мем, как иНЖАЛИД ДЕЖИЦЕ, являющийся сообщением об ошибке (Invalid device) терминала Видеотон, а также некоторых спектрумов, в которых маленькая латиница отсутствовала. Ныне этот мем благополучно забыт, но нестыковки между порядком букв в КОИ-8 и других кодировках кириллицы порождают новые лулзы и по сей день, см. бНОПНЯ.
КОИ-8 прост как мычание — незатейливо склеили два набора КОИ7Н0 и КОИ7Н1 и получили полезную 8-битную кодировку, которая при потере 8-го бита сохраняла читаемость в транслите, хотя и с инвертированным регистром.
В результате, от всех прочих кодировок, применяемых для кириллицы, КОИ-8 отличается тем, что порядок букв в ней не соответствует алфавиту ни одного из использующих кириллицу человеческих языков. Слава (почтовым) роботам!
В своё время кодировка КОИ-8 люто, бешено форсилась Андреем «ache» Черновым, сатанистом и любителем Кроули, что какбе намекает. Ache же был автором древнего и в то время практически единственного пакета электронной почты для DOS — UUPC (не путать с протоколом "uucp"), так что ему можно. А во время инсталляции оного пакета удивлённый юзер мог лицезреть автора с черепом в руках, ага. Тот же Ache пропихнул KOI8-R в RFC 1489, что дало повод считать KOI8-R «стандартной кодировкой русского интернета» и увеличило ЧСВ создателя и первых юзеров на 9000.
Это вызвало глубокое неприятие со стороны пользователей DOS, Windows и даже Mac (у которых тоже была своя кодировка mac-cyrillic) и вызвало войну всех против всех. Бедные вебмастера делали по четыре копии сайта в разных кодировках, а беспощадные русские быдлокодеры ковали свою вундервафлю — Russian Apache, который эвристически пытался угадать кодировку на стороне юзера (иногда случайно перекодируя невинные GIF-ки с проном). Только изготовители перекодировщиков ловили свой мутный PROFIT на войне кодировок и наплодили over 9000 быдло-перекодировщиков.
Чуть позже подтянулись укры, которым ache позабыл выдать расовых хохло-букв и запилили незалэжный KOI8-U (RFC 2319), а позже ещё over 9000 разных малых наций с алфавитами на основе кириллицы.
Надо сказать, что правоверные линуксоиды встретили кодировку КОИ-8 как родную — в те далекие времена многие программы для Линуха страдали 7-битностью и КОИ-8 пришёлся очень кстати. А у бздунов KOI8-R это вообще генеральная линия партии и ставится принудительно автоматически при выборе русского, хотя для эстетов Юникод всё же имеется, начиная с FreeBSD 7.
Первый гвоздь в гроб КОИ-8 забил стандарт MIME. Выяснилось, что нормальному почтовому клиенту не важно в какой кодировке написан текст, лишь бы в нём был правильно выставлен Charset. Почтовик знает их все, и ему похуй. Конечно, если содержимое Windows-1251 промаркировать KOI8-R, получится бНОПНЯ. Точно также во всех браузерах главное — верно промаркировать на сервере, а уж браузер покажет.
Второй и окончательный гвоздь забил Юникод в формате UTF-8, который содержит все символы всех мунспиков. Нынче только желающие быстро работать со строками через MMX/GPGPU сопротивляются UTF-8 и настаивают на тотальном использовании КОИ-8 или другого восьмибита с фиксированной длиной символа, остальные хомячки просто юзают Юникод, даже не замечая его недостатков.
Так как русские буквы в КОИ-8 занимают те же коды, что и в cp1251, после насильного двадцатикратного прогона получается та же изначальная строка.