
Перекодировка
Это крайне важный пункт меню, который нередко приходится вызывать из-за чехарды с 
кодировками кириллицы. Но сначала давайте поговорим о том, почему вообще возникают 
все эти проблемы с русскими буквами и почему письма нередко приходят в очень 
странном виде, вроде этого:

ўТЙЧЕФУФЧХА,  чБУС ўХРЛЙО!
у ОБЙМХЮЫЙНЙ РПЦЕМБОЙСНЙ, 
                                    чБУЙМЙК ўХРЛЙО.
эПЙ РТПЕЛФЩ Ч щОФЕТОЕФЕ:

Дело в том, что на сегодняшний день только стандартная латиница однозначно 
идентифицируется всеми программами. Потому что для нее используется одна и только 
одна кодировочная таблица (где каждая буква имеет свой определенный порядковый 
номер). А в случае дополнительных символов, используемых в национальных алфавитах 
(как, например, в немецком, французском и многих других языках), или в случае своих 
собственных алфавитов (как, например, с нашей кириллицей) используется не одна 
кодовая таблица, а несколько. Конечно, это очень и очень неудобно и создает массу 
проблем пользователям, но мы сейчас не будем искать корни возникновения этой 
проблемы, а поговорим о том, как ее решать. 
Итак, что же такое кодовая таблица кириллицы (в данном конкретном случае)? Это 
таблица, которая определяет, какие символы алфавита соответствуют их эквивалентам в 
национальной кодовой странице Windows. Например, принятая в качестве стандарта для 
электронной почты таблица кодировки KOI8-R выглядит следующим образом:
pic0227.tif
А стандартная кодировка, принятая в Windows (она называется Microsoft CP-1251), 
выглядит так:
pic0228.tif
Как видите, одинаковые буквы в разных кодовых таблицах имеют разные координаты. 
Поэтому если письмо прислано в, например, кодировке KOI-8, а программа его 
показывает, перекодируя как CP1251, то на экране возникает нечитаемая белиберда. 
Как я уже сказал, KOI8-R в электронной почте принята в качестве стандарта. Казалось бы, 
все пишут в KOI8-R, все читают в KOI8-R - никаких проблем с перекодировкой не будет. 
Однако все не так просто! Во-первых, многие пользователи пишут письма не в KOI8-R, а 
прямо в CP1251. Во-вторых, в Интернет также попадают письма из других сетей 
(например, из Фидо), где письма пишутся в ДОСТовской кодировке CP-866. Кроме того, 
существуют также кодировка ISO-8859-5, применяемая на компьютерах с операционной 
системой Unix, и кодировка Mac, применяемая в компьютерах Macintosh (письма с такими 
кодировками тоже могут попасть в ваш почтовый ящик). Это уж не говоря о случаях, 
когда некоторые почтовые серверы вообще не понимают символы из второй половины 
кодировочной таблицы (где обычно содержатся символы национальных алфавитов) и 
пытаются все эти непонятные ей символы свести к латинице,  в результате чего 
полученную абракадабру даже расшифровать будет невозможноЕ
Так как же почтовый редактор может узнать, в какой именно кодировке написано письмо, 
чтобы показать его вам в виде нормального текста, а не бессмысленного набора символов? 
Здесь все зависит от редактора, в котором написано сообщение, и от почтовых серверов, 
через которые прошло это письмо. Если редактор в RFC-822 правильно указал кодовую 
таблицу, которую нужно использовать для перекодировки, то у вас с прочтением письма 
проблем возникнуть не должно. Но если таблица не указана или указана неправильно, то 
вы вместо связного текста можете получить сплошную абракадабру. 
Кроме того, существуют еще более экзотические проблемы, когда, например, письмо на 
каком-то почтовом сервере подвергается так называемой автоматической перекодировке, 
когда KOI8-R считается CP-1251 и перекодируется в KOI8-R (понятно, что результат этого 
действа простым использованием нужной кодировочной таблицы уже не прочитать) и 
наоборот - письмо, написанное в CP-1251 считается написанным в KOI8-R и 
перекодируется в CP-1251. Такие письма надо сначала вернуть к исходному виду, а затем 
просмотреть с помощью нужной кодировочной таблицы. 
The Bat!Ту прекрасно известны все те проблемы, которые у пользователей встречаются с 
кодировочными таблицами, поэтому в нем сделано все для того, чтобы свести эти 
проблемы к минимуму. 
Итак, если вы вызовете пункт "Перекодировка", то получите следующее меню:
pic0229.tif
         Список установленных таблиц перекодировки
"Нет" - означает, что при просмотре письма не нужно использовать никаких 
перекодировочных таблиц, а показывать письмо так, как оно есть. Как правило, если 
письмо написано в стандартной кодировке KOI8-R, то при выборе "Нет" оно все равно 
будет показано правильно. 
Далее идет перечисление всех наиболее часто используемых кодировок (или "тяжелых 
случаев" в виде двойного перекодирования - автоконвертирования). Какую-то из этих 
кодировок можно выбрать установленной по умолчанию (нажав предпоследнюю строку 
меню). В этом случае The Bat! все приходящие письма будет показывать именно в этой 
кодировке. Однако более логично выбрать "Автоопределение" - в этом случае The Bat! 
будет сам пытаться определить кодировку, чтобы вам не пришлось ломать над этим 
голову. Если же точно кодировку определить не удалось, тогда вам придется вызвать это 
меню ручками и по очереди перебирать возможные варианты (начинать нужно с KOI8-R, 
затем CP1251, затем KOI autoconverted, CP1251 autoconverted, DOS, ISO, Apple). 
Опытные пользователи по внешнему виду даже неправильно расшифрованного письма 
могут определить, в какой именно кодировке оно написано. Потому что текст каждой из 
кодировок, показанный, например, в KOI8-R, имеет свои отличительные особенности. 
Вот, например, одно и то же письмо, написанное в разных кодировках и показанное в 
KOI8-R:
CP1251:
оПХБЕРЯРБСЧ, toffler!
  щРН РЕЯРНБНЕ ОХЯЭЛН, ЙНРНПНЕ ОНЙЮГШБЮЕР ПЮГКХВМШЕ ЙНДХПНБЙХ.
юКЕЙЯ щЙЯКЕП.
ISO:
•ЮьруБАБрЦН, toffler!
    мБч БуАБчрчу ъьАЛэч, зчБчЮчу ъчзпвКрпуБ ЮпвшьГщКу зчтьЮчрзь.
-шузА мзАшуЮ.
DOS:
ПЮЁвеБАБвЦН, toffler!
    ЭБо БеАБовое °ЁАЛо, ЇоБоЮое °оЇ зКв еБ Ю з"ЁГнКе ЇодЁЮовЇЁ.
И"??? ???"??.
KOI8-R autoconverted from CP1251:
???????????, toffler!
    ??? ???????? ??????, ??????? ?????????? ????????? ?????????.
????? ??????.
CP1251 autoconverted from KOI8-R:
???????????, toffler!
    ??? ???????? ??????, ??????? ?????????? ????????? ?????????.
????? ??????.
MAC:
???????????, toffler!
    ??? ???????? ??????, ??????? ?????????? ????????? ?????????.
АКЕЙЯ ЭЙЯКЕП.

Как видите, если приглядеться, можно заметить некоторые закономерности, которые 
помогут "на глазок" выбрать правильную кодировку, если The Bat! ее по каким-то 
причинам не сможет определить автоматически (хотя обычно он это делает почти всегда). 
Итак, что же можно порекомендовать вам, чтобы в процессе работы было как можно 
меньше проблем с кодировкой? 
1) Свои письма всегда пишите в кодировке KOI8-R, которая является стандартом для 
электронной почты (кодировка, устанавливаемая по умолчанию в The Bat!, задается в 
"Ящик - Свойства почтового ящика - Шаблоны - Новое письмо - Таблица 
перекодировки"). 
2) Для полученных писем в меню "Перекодировка" установите "Автоопределение". 
Вот, пожалуй, и все. Остальное за вас решит The Bat!. А если некое письмо все-таки 
показывается нечитаемыми символами, тогда вызывайте "Перекодировка" и перебирайте 
по очереди кириллические таблицы кодировок - почти всегда в конце концов письмо вам 
будет показано правильно. 
Однако если в письме вместо текста идут одни вопросительные знаки или все 
повторяющиеся два-три символа - это означает, что данное письмо вы уже не сможете 
расшифровать ни под каким видом, потому что оно безнадежно было испорчено каким-то 
почтовым сервером (такое бывает). Понятно, что когда перед вами весь текст состоит из 
одного-трех символов, никакой таблицей это не расшифровать.
В The Bat! вы также можете добавлять свои собственные таблицы перекодировок 
(например, других национальных алфавитов), но это будет рассмотрено в следующей 
главе. 
