topp.gif (1781 bytes) toprp.gif (224 bytes)
codep.gif (1926 bytes) tsupp.gif (1810 bytes)
   

Кодировки русских букв в почтовых сообщениях.

Существующие кодировки русских букв.

В компьютерной технике каждый символ долгое время кодировался одним байтом.В настоящий момент активно внедряется UNICODE, где символ использует для представления более 1 байта. Однако в сети широко используются однабайтная кодировка. Байт состоит из 8 бит (единиц) и может принимать значение от 0 до 255. Компьютерные программы интерпретируют код каждого байта как определенный графический знак символа. Одним байтом можно закодировать 256 символов, этот набор называется кодовой таблицей символов. Кодовую таблицу принято делить на нижнюю половину (значения байта от 0 до 127) и верхнюю половину (значение байта от 128 до 255). Для поддержки национальных алфавитов существует множество кодовых таблиц. Иначе их еще называют таблицами наборов символов (charset). В нижней половине кодовой таблицы распологаются символы английского алфавита и знаки препинания. В верхней половине кодовой таблицы распологаются русские буквы (мы обсуждаем только кодировку русских букв) и символы псевдографики. Кодировка KOI8-R определена в сети RELCOM как стандарт для передачи русских символов. Но русскому языку не повезло - существует множество используемых в настоящее время различных кодовых таблиц для русских символов:

Кодировка Операционная система Описание
cp866
(DOS)
MS DOS, OS/2 Нормальная досовская кодировка
cp866
(FIDO)
  CP866 c заменой русских символов 'Н' и 'p' на латинские 'H' and 'p' вызывает небольшие неприятности при проверке правописания, а также при перекодировке в Volapyuk.
KOI8-R
(KOI8)
CP878
UNIX Исторически сложившаяся кодировка, удобная тем, что при отгрызении 8 бита текст остается читабельным, используется в интернете и юниксах.Встречается 3 разных варианта размещения псевдографики, однако наиболее стандартная кодировка - KOI8-R имени А.Чернова (RFC 1489)
CP1251
(Win)
MS Windows Кодировка использумая в ОС Windows.
СP10007
(Mac)
MacOS Кодировка от Apple.
ISO-8859-5
(ISO)
UNIX  
Volapyuk   это довольно смешной русский, который однако можно взаимно однозначно перекодировать в обе стороны без потери английского языка. Переход на русский/латинский регистр кодирует как <r> <l>. Рекомендуется для посылки чайникам, которые не могут настроиться на русские кодировки или для общения с нашими, которые сидят черт-те где (где есть проблемы с 8-м битом)
Латиница   Русский текст выполненный английскими буквами.

Вопросы перекодирования обычно сводятся к:

  • перекодировке символов принятого вами по почте сообщения в кодовую таблицу, которая поддерживается в вашей программе;
  • перекодированию отправляемого вами по почте сообщения в кодировку, читаемую на стороне получателя (если это необходимо);
  • использованию специальных оболочек (типа Volapuk и QUOTED PRINTABLE) для передачи русских текстов по сетям, позволяющим посылать сообщения только в 7-и битовом коде. ( см. Кодирование почтовых сообщений )

Подсказкой об используемой кодовой таблице на машине отправителя может служить необязательное поле заголовка письма:

Content-Type: charset=......

Но возникают и более сложные задачи требующие многократного перекодирования. Например, пользователь сети использует почтовую программу, которая отправляет письма в кодировке Windows CP1251. Так как стандартной кодировкой считается KOI8-R, то пусть для удобства клиента на узле провайдера все отправляемые им письма перекодируются из CP1251 в KOI8-R. Далее, пользователь меняет программное обеспечение, не известив при этом техническую службу узла. Учитываю постоянно растущее многобразие почтовых программ, подобные случаи нередки. А если это произойдет и на стороне получателя? В подобных случаях может потребоваться 2 и более перекодировок и при неизвестных способах кодирования число вариантов растет лавинообразно.Обычно для решения подобных задач используются отдельные программы кодировщики под DOS или Windows. Существуют программы, которые сами пытаются подобрать вариант последовательного перекодирования, автоматически анализирую степень читабельности полученного сообщения. Но это у них не всегда получается.


Автоматические перекодировщики.

Такие программы определяют используемую кодировку в документе и преобразовывают затем его к той, которая необходима. Исходную кодировку они определяют на основании поиска в словарях наиболее распространенных слов или использую эмпирические алгоритмы.

Название Статус Особенности
TOT-Recode
http://www.totcd.ru
Бесплатный - Ручная оценка правильности перекодирования;
+ возможность самостоятельного выбора направления перекодирования;
+ достаточно маленький объем;
+ доступна в виде программы;
+ Бесплатный.
http://www.totcd.ru/recode
Почтовый декодер
Web Studio Design
Бесплатный - Достаточно маленький словарь;
- Нет возможности самостоятельного выбора направления перекодирования;
- Только on-line версия;
+ Поддерживает раскодирования почтовых сообщений MIME;
+ Бесплатный.
http://www.design.ru/free/decoder/
Mail Reader
АО Агама
Коммерческий продукт + Большой словарь;
+ Высокая степень правильности перекодирования
+ Демоверсия на 30 перекодировок;
- Большой объем программы;
- Достаточно дорого.
http://www.agama.com/mailreader/
DC.ZIP
Universal Russian codepage DeCoder v 0.52a
(c)Evgeny Kotsuba, 1997
бесплатное, для некоммерческого использования + KOI8, DOS, Win, ISO, MAC
+ декодирование Quoted-Printable, Volapyuk, Translit, Latin1.
+ Универсальный декодировщик.
+ Позволяет создавать свои алгоритмы перекодирования.
+ KOI8, DOS, Win, ISO, MAC.
XCODE.EXE
by Pavel Senatorov
Emil Sildos
Бесплатный +Универсальный декодировщик.
+Позволяет распознавать двухкратные перекодировки.
+KOI8, DOS, Win, ISO, MAC.
ftp://ftp.lexa.ru/pub/domestic/emil/xcode/
EMAGIC.ZIP
Encoding Magic Ver 1.0.1 by Sergey Gershtein for DOS
Бесплатный + Универсальный кодировщик
+ Любое количество перекодировок
+ KOI8, DOS, Win, ISO.
ftp://ftp.mplik.ru/pub/unix/utils/emagic_1.0.1.tgz

Перекодировщики.

Название Краткое описание.
KOI82WIN.EXE перекодировщик из KOI8 в CP1251
WIN2KOI8.EXE перекодировщик из CP1251 в KOI8
RUS2LAT.EXE перекодировщик русского текста английским шрифтом и обратно
KOI8ALT.EXE перекодировщик из KOI8 в Альтернативную (ДОС)

botp.gif (2363 bytes)