КОИ-8

A long time ago, in a galaxy far, far away... События и явления, описанные в этой статье, были давно, и помнит о них разве что пара-другая олдфагов. Но Анонимус не забывает! « Как то раз два гусара в Йоркшире Переслать КОИ-8 решили Но проклятый модем Выдал им КОИ-7 КОИ-6, КОИ-5 и четыре » — Анонимус вспоминает KOI8-R, MOTHERFUCKER, DO YOU SPEAK IT?!! КОИ-8 (код обмена информацией, 8 бит, KOI8) — восьмибитная ASCII-совместимая кодовая страница, разработанная для кодирования букв кириллических алфавитов. Имеет настолько широкое распространение на просторах России, что даже медведи на улицах свободно на ней говорят[1]. История и особенности КОИ-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, после насильного двадцатикратного прогона iconv -f cp1251 -t koi8-r получается та же изначальная строка. См. также бНОПНЯ иНЖАЛИД ДЕЖИЦЕ Примечания ↑ На самом деле пиндосы считали, что медведи должны говорить на ISO-8859-5, и которую в СССР даже объявили госстандартом в 1980-х из-за тупой копипасты совковым комитетом по стандартизации документов, в которых они не шарили. Но IRL всё оказалось иначе. Любой программист без словаря поймёт, что такое КОИ-8 Языки программирования Промышленные: 1С • BAT • C# • C • C++ • Java • JavaScript (AJAX) • Pascal • Perl • PHP • Python • Ruby • ABAP • Ассемблер • Васик • Фортран Эзотерические: BrainFuck • Erlang • Forth • Haskell • LISP (My other car) • Prolog • Tcl • TeX Профессии Быдлокодер • Программист • Тестировщик • Хакер • Хеллоуворлдщик Методы и стили Reverse Engineering • Анти-паттерн • Выстрелить себе в ногу • Грязный хак • Код (индусский) • Костыль • Метод научного тыка • Помолясь • Свистелки и перделки Прочее ++i + ++i • Deadline • %s • 640 килобайт • CMS • Dummy mode • ЕГГОГ • Foobar • God is real, unless explicitly declared as integer • GOTO • Ifconfig • KISS • RegExp • SICP • sql.ru • Xyzzy • Дискета • Инжалид дежице • КОИ-8 • Лог • Ман • Рекурсия • СУБД • Тест Тьюринга • Умение разбираться в чужом коде • Фаза Луны • Фатальный недостаток