Кодировки
Если ты открывал письмо от друга и видел вместо текста набор странных символов вроде “пПЙЧЕФ, ЛБЛ ДЙМБ?” — добро пожаловать в ад кодировок Рунета 90-х. Время, когда русский текст был не просто текстом, а полем битвы операционных систем, почтовых клиентов и стандартов. Время, когда слово “кракозябры” знали все.
Что такое кодировка и почему их так много?
В компьютере нет букв — есть только числа. Чтобы показать букву “А”, компьютер использует таблицу соответствия: число 65 = буква “A”. Для английского это просто: есть стандарт ASCII, 128 символов, все договорились.
Для русского всё сложнее. Русских букв 33, плюс заглавные — итого 66 символов. Куда их впихнуть в таблицу? Каждая операционная система и каждая платформа решала это по-своему. Результат — хаос.
В 90-х годах в Рунете одновременно существовало как минимум четыре популярных кодировки:
- KOI8-R — стандарт Unix и интернета
- CP-1251 (Windows-1251) — стандарт Windows
- CP-866 — стандарт DOS
- ISO 8859-5 — международный стандарт, которым почти никто не пользовался
Написал письмо в Windows (CP-1251), а получатель открыл его в Unix (KOI8-R)? Привет, кракозябры.
KOI8-R: когда Unix правил балом
KOI8-R (Kod Obmena Informatsiey, 8 bit, Russian) — кодировка, восходящая к советскому стандарту КОИ-8 (ГОСТ 19768-74). [НЕ ПРОВЕРЕНО] Современный вариант KOI8-R был зафиксирован в RFC 1489 в 1993 году. Она стала стандартом для Unix-систем и, соответственно, для всего раннего интернета.
Почему именно KOI8-R победила в интернете? Просто: первые серверы Рунета крутились на Unix, первые почтовые системы — тоже Unix. Если ты хотел завести почтовый ящик на бесплатном почтовике, высока была вероятность, что письма придут в KOI8-R.
Красота KOI8-R в том, что русские буквы в ней расположены не по алфавиту, а по схожести с латиницей. Если отбросить восьмой бит (превратить “А” в “A”), текст оставался читаемым. “пПЙЧЕФ” превращалось в “pRIVET” — кривовато, но понятно. [НЕ ПРОВЕРЕНО] Эта фича спасла тысячи писем в эпоху 7-битных почтовых систем.
CP-1251: империя Windows наносит ответный удар
Windows-1251 — кодировка, которую Microsoft впихнула в Windows 95 и все последующие версии. Для обычного пользователя, который работал только в Windows и не лез в интернет, это была идеальная кодировка: всё работало, всё отображалось.
Проблема началась, когда пользователи Windows стали выходить в интернет. Браузеры по умолчанию ожидали KOI8-R, а получали CP-1251. Сайты отображались кракозябрами. Письма приходили нечитаемыми. Форумы превращались в свалку символов.
Решение? Вручную переключать кодировку в браузере. В Opera это была комбинация клавиш, в Internet Explorer — меню “Вид → Кодировка → Кириллица (Windows)”. Опытные пользователи делали это на автомате. Новички звонили в техподдержку провайдера и орали: “У меня сайты не работают!”
CP-866: привет из DOS
CP-866 — это кодировка DOS, которая к концу 90-х уже была анахронизмом, но всё ещё встречалась. Особенно в старых архивах, в текстовых файлах с дискет, в логах старых BBS.
Открываешь readme.txt из архива игры, скачанной с Горбушки, — а там кракозябры. Потому что файл был упакован в DOS, в CP-866, а ты открыл его в Блокноте Windows, который ожидал CP-1251.
Решение? Специальные утилиты-перекодировщики или Far Manager, который умел переключать кодировки на лету.
Кракозябры: культурный феномен
Кракозябры (или крокозябры — были варианты написания) — это символы, которые появлялись вместо нормального текста при неправильной кодировке. “пПЙЧЕФ, ЛБЛ ДЙМБ?” вместо “Привет, как дела?”. “╨Я╤А╨╕╨▓╨╡╤В” вместо “Привет”.
Кракозябры стали мемом задолго до того, как слово “мем” вошло в обиход. Это был символ технической некомпетентности, символ хаоса, символ эпохи. Получить письмо в кракозябрах — норма. Увидеть форум, где половина сообщений нечитаема — норма.
[НЕ ПРОВЕРЕНО] В 1998 году на Фидонете даже появилась шуточная эхоконференция SU.KRAKOZYABRY, где нарочно писали в неправильных кодировках. Это был такой метаюмор: кракозябры про кракозябры.
Электронная почта: поле битвы кодировок
Почта в 90-х — это отдельный ад. Ты пишешь письмо в Outlook Express (CP-1251), отправляешь другу, который читает его в Unix-клиенте (KOI8-R). Он видит кракозябры. Отвечает в KOI8-R, ты получаешь кракозябры.
Чтобы переписываться нормально, нужно было либо договориться об одной кодировке, либо использовать умный почтовый клиент. The Bat! был одним из лучших: он автоматически определял кодировку входящих писем и перекодировал на лету. Это была убийственная фича — половина пользователей выбирала The Bat! именно за это.
Другие клиенты тоже учились. Mozilla Thunderbird, Opera M2, даже Outlook — все добавили автоопределение кодировок. Но в первой половине 90-х это был дикий запад: каждое письмо — лотерея.
Перекодировщики: костыль, ставший нормой
Раз уж система не могла договориться о единой кодировке, появились утилиты-перекодировщики. Маленькие программки, которые брали текст в одной кодировке и конвертировали в другую.
strconv, istrconv, CharsetDetector — эти утилиты знали все, кто работал с текстом. Скопировал кракозябры из браузера, вставил в перекодировщик, выбрал “из KOI8-R в CP-1251” — получил нормальный текст. Костыль? Да. Но работал.
Некоторые перекодировщики даже встраивались в браузеры как плагины. Правой кнопкой по странице — “перекодировать” — выбрал нужную кодировку — профит.
Unicode: свет в конце тоннеля
В конце 90-х появился Unicode — стандарт, который обещал решить все проблемы. Одна кодировка для всех языков мира. Русский, английский, китайский, арабский — всё в одной таблице, никаких конфликтов.
UTF-8 — это способ записи Unicode, который стал стандартом интернета. В начале 2000-х сайты начали массово переходить на UTF-8. Браузеры начали поддерживать его по умолчанию. Почтовые клиенты тоже.
Но переход был не мгновенным. Ещё в середине 2000-х можно было нарваться на старый сайт в KOI8-R или на письмо в CP-1251. Полная победа UTF-8 случилась только к концу 2000-х — началу 2010-х.
Наследие: почему мы до сих пор помним кракозябры
Кодировки — это не просто техническая проблема. Это повседневность раннего Рунета, когда единых стандартов не было, а каждый делал как хотел.
Кракозябры научили целое поколение разбираться: «А в какой кодировке этот текст?» — и руками переключать то, что сегодня работает автоматически.
Сегодня UTF-8 победил, и новое поколение не знает, что такое “переключить кодировку в браузере”. Но мы-то помним. Помним пПЙЧЕФ, помним ╨Я╤А╨╕╨▓╨╡╤В, помним письма, которые нужно было перекодировать три раза, чтобы прочитать.
См. также
- The Bat! — почтовый клиент с лучшей в Рунете поддержкой кодировок
- ICQ — где кодировки тоже были проблемой
- FidoNet — где кодировки решали ещё в 80-х
- Бесплатная электронная почта — где кракозябры были нормой
- Opera — браузер с удобным переключением кодировок
Статья в энциклопедии Рунет 90-х и 2000-х. Проект FolkUp. Содержание предоставляется «как есть», без гарантий полноты и точности.