KOI-8 использовалась не только Unix-системами. Так, любой пользователь персонального компьютера под управлением MS-DOS или Windows, имеющий выход к электронной почте, должен был иметь у себя программу для получения и отправки сообщений, умеющую работать с KOI-8. Выход к системе электронной почты был возможен и с компьютеров фирмы Apple — с Макинтошей, однако в операционных системах для этих компьютеров использовалась своя, оригинальная русская кодировка символов, отличающаяся от всех остальных. Для того, чтобы облегчить переписку между пользователями разных типов компьютеров и операционных систем, KOI-8 была принята как универсальная кодировка, и любая почтовая программа была обязана уметь читать и отправлять сообщения в этой кодировке.
Наличие пяти различных кодировок для русского языка создало определенные проблемы. Прежде всего, возникла необходимость в специальных программах-перекодировщиках, о которых речь пойдет ниже. Но самая большая проблема оказалась в российских почтовых серверах.
Казалось бы, а в чем она могла заключаться? Главное, чтобы серверы могли обрабатывать сообщения в восьмибитных кодировках, и тогда в какой бы кодировке сообщения не пересылались, они всегда могли бы быть прочитаны принимающей стороной с помощью программы, умеющей работать с этой кодировкой. Но, увы, не все оказалось таким простым… В некоторые почтовые серверы их создатели вложили возможность автоматической перекодировки поступающих сообщений — возможно, для некоей "стандартизации": глупый пользователь, ничего не понимающий в компьютерах, написал и отправил письмо в кодировке Windows-1251, - так надо его письмо перевести в KOI-8, чтобы было, как у нормальных людей, никогда не использующих Windows! Хотя, может быть, у создателей перекодирующих серверов были и иные соображения.
Если на такой перекодирующий сервер поступит сообщение в кодировке Windows-1251, и он его воспримет именно как сообщение в этой кодировке, то письмо преспокойно будет перекодировано в KОI-8 и отправлено дальше. О том, в какой кодировке написано письмо, всегда указывается в его заголовке или тексте. Просмотреть текст сообщения именно в том виде, в каком сообщение передается почтовыми серверами (то есть со всей служебной информацией) можно в любой почтовой программе. Например, в Microsoft Outlook Express 5.0 это можно сделать, щелкнув правой кнопкой мыши на письме, выбрав из контекстного меню пункт "Свойства", а в появившемся окне — вкладку "Подробности". Тогда можно будет просмотреть заголовок сообщения. Нажав на кнопку "Исходное сообщение", вы увидите текст письма так, как он передается по Сети. Кодировка письма указывается в заголовке сообщения (рис. 13.7).
Рис. 13.7.
Русская версия Microsoft Outlook Express 5.0 по умолчанию для всех отправляемых сообщений ставит кодировку KOI-8 и сообщения отправляет именно в этой кодировке. Однако некоторые почтовые программы могут делать ошибки — письмо написано, например, в KOI-8, а программа пишет в заголовке письма, в служебной информации, что письмо имеет кодировку Windows-1251. Если такое письмо будет отправлено адресату, то оно сразу не сможет правильно отобразиться в его почтовой программе — на экране будет мешанина символов вроде той, что помещена в заголовке этой главы. Поскольку почти все почтовые программы позволяют просматривать одно и то же письмо в различных кодировках, то получатель письмо прочитать все же сможет, просто выбрав для него правильную кодировку.
Но если такое письмо — с несоответствующим содержанию заголовком — попадет на перекодирующий почтовый сервер, то ситуация резко осложнится. Посмотрев на заголовок письма, сервер решит, что, раз оно написано в Windows-1251, как там указано, то оно должно быть перекодировано в стандартную для Сети (по мнению сервера и его создателей) кодировку KOI-8. К письму будет применено преобразование Windows-1251 — KOI-8: будут заменены соответствующие коды символов.
Но письмо-то уже изначально было в KOI-8! И что получается? Автор письма написал в нем "Добро пожаловать". В KOI-8 оно перекодировалось как "дНАПН ОНФЮКНБЮРЭ". А сервер эту фразу снова перекодировал по тем же законам, что и любая перекодировка из Windows-1251 в KОI-8. И получилось: "Дмюом нмтчймачпщ". Понять что-либо уже так просто стало невозможно.
Ну, а если на пути письма попалось несколько перекодирующих почтовых серверов, и оно было перекодировано не один раз, то дешифрация такого письма становится крайне сложной задачей.
Изначально система электронной почты предназначалась для обмена исключительно текстовыми сообщениями и не могла пересылать файлы, приложенные к письмам, так как последние обычно являлись архивами и представляли собой двоичные данные, то есть не раскладывающиеся на удобовразумительную последовательность символов.