2004 г.
В дебрях кодировок
Виталий Грищенко, Издательский Дом "КОМИЗДАТ"
Предмет этого обзора - программы, главное назначение которых - преобразование текстовых данных, представленных в различных кодировках
Что такое кодировка? Это таблица, где каждой букве алфавита (а также цифрам и специальным знакам) присвоен уникальный номер - код символа. Первой широко используемой кодировкой, в которую вошли символы кириллицы, была KOI8. Ее возникновение связывают с периодом адаптации ОС Unix к русским символам. До сих пор KOI8 является основной кодировкой Unix.
Шло время, на арену вышла Microsoft со своей операционной системой DOS. Вместо того чтобы воспользоваться готовыми стандартами, она решила пойти своим путем. Так появилась codepage 866. Обладатели Win9x вспомнят строки, появлявшиеся на экране при запуске:
mode con codepage prepare=((866)
C:\WINDOWS\COMMAND\ega3.cpi)
mode con codepage select=866
Это и есть поддержка кодировки DOS. Эта кодировка была удобна тем, что предусматривала символы для создания рамок, так называемую псевдографику.
От семейства компьютеров Macintosh нам досталась кодировка MAC. Семейство ОС Windows 9.x преподнесло нам Win-1251. Наконец, от международной организации по стандартам ISO нам досталась кодировка ISO-8859-5. Жаль, но единого стандарта кодировки для кириллических символов до сих пор не существует. Однако определенные сдвиги есть — сейчас идет активная работа над перспективной кодировкой UNICODE, которая, по идее, должна решить проблемы с распознаванием кириллицы.
Чаще всего проблемы с распознаванием кодировки возникают при чтении электронной почты и просмотре веб-страниц. Пока вы ведете переписку на английском или в транслите, никакие кодировки вам не страшны. Но стоит отправить на компьютер сообщение с поддерживающего кириллицу мобильного телефона (а это стандарт ISO) — и они возникнут. Другой пример: во время работы в Windows вам нужно прочитать текстовый файл, созданный в DOS. Вы, как всегда, открываете текст в «Блокноте» и видите… абракадабру вроде OS-ЙНДХПНБЙЕ+ лНФМН, Й.
Но мир не без добрых людей. Специально для таких ситуаций существуют программы-перекодировщики.
Встроенные перекодировщики
А что могут предложить нам современные браузеры и почтовые клиенты, то есть программы, которые «по долгу службы» постоянно сталкиваются с разными кодировками?
Сегодня такие программы умеют многое. Большинство браузеров и сами корректно распознают кодировку, а на случай, если это не удается, существуют функции подбора кодировки вручную. Следует отметить, что в плане поддержки различных кодировок IE намного обходит Оперу, хотя и последняя, похоже, подружилась с русскими символами…
Почтовые клиенты тоже не отстают. Например, если внимательно вчитаться в служебный заголовок письма, полученного TheBat!, можно узнать кодировку — независимо от того, правильно определила ее программа или нет. Если же что-то не так, щелкните правой кнопкой мыши на теле письма и выберите команду Перекодировка, а там уже делайте все, что душе угодно. Аналогичные возможности предоставляет Outlook Express.
Штирлиц
В смысле системных требований программа очень лояльна - спокойно работала на 486 с 8 Мб памяти. Первое, что бросается в глаза при запуске, - немного изменившийся (в лучшую сторону) по сравнению с предыдущей версией интерфейс и… баннер в правом углу экрана, который, впрочем, через 10-15 секунд закрывается. Что же, за качество надо платить. Вот только жаль, что в этой версии нельзя зарегистрироваться и убрать баннер, как это делается во многих аналогичных adware-программах.
При запуске «Штирлиц» помещает свою пиктограмму в системную область панель задач (tray), так что при сворачивании окна ищите ее там. Описывать все возможности программы я не буду, так как их очень много, да и на домашней веб-странице они подробно описаны. Не считая множества полезных мелочей, отмечу лишь некоторые новшества этой версии:
- теперь стало намного удобнее пользоваться программой в качестве простого текстового редактора;
- появился нормальный механизм деинсталяции;
- наконец-то все настройки собраны в один диалог свойств.
Как ни пытался я «обломать» программу, это не удалось. Все письма были перекодированы правильно (правда, мне порядком надоело ждать перекодировки одного из писем, но, после того как я нажал Прервать, письмо все равно было распознано).
Туговато обстоят дела с распознаванием KOI8-U (кодировка с поддержкой украинских букв - і, ї, є). Если в TheBat! украинские символы читаются, то в «Штирлице», увы, нет. Не помогло даже редактирование таблицы перекодирования вручную. Из своих примеров «Штирлиц» не вполне справился со смешанной кодировкой (не распознал заголовок), а также допустил пару мелких недочетов в виде неправильно распознанных букв. В отличие от большинства аналогов, «Штирлиц» восстанавливает «псевдорусский» текст, состоящий из несуществующих слов, что говорит об оригинальности механизма распознавания кодировки, не основанном на полном словаре.
Параметров настройки в «Штирлице» много, и новичок может растеряться при виде такого изобилия. Хорошо, что принятая по умолчанию настройка программы удовлетворит нуждам большинства пользователей.
Вывод - благодаря мощному механизму расшифровки «Штирлиц» вполне может считаться одной из лучших программ своего класса.
TOT-RECODE ІІ
В плане функциональности эта программа попроще предыдущей. Жаль, что мы больше не увидим новых версий, так как работа над ней прекращена. Прежде всего скажу, что программа нетребовательна к системе, так как написана на Visual C++ 5. Довольно примитивный интерфейс не испугает даже новичка. Возможностей поменьше, чем у «Штирлица», но, может быть, так даже лучше. Ведь редкий пользователь доберется и до половины из них… При настройке TOT-RECODE ІІ можно выбрать язык интерфейса, настроить внешний вид и схемы перекодировки. Программа требует, чтобы текст был связным и обязательно на русском языке (моя попытка перекодировать HTML-код оказалась неудачной).
Теперь об испытаниях. Программа не справляется с koi8-u. О распознавании примеров из комплекта «Штирлица» не стоит и говорить. То, что на перекодировку ушло больше времени, еще полбеды. Но точность распознавания была просто ужасной! Попытки что-то изменить в настройках не помогли. Через полминуты «раздумий» над простым текстом в две строки программа выдала несколько вариантов… абракадабры.
Зато в TOT-RECODE ІІ обнаружился очень удобный пакетный режим перекодирования - нескольких файлов за один раз - и довольно обширная таблица схем перекодирования. Так что тем, кому приходится перекодировать много «испорченных» файлов, но не попадается сложных кодировок, эта программа может пригодиться.
Etype Mail Decoder
Судя по названию, основное назначение этой программы - расшифровка сообщений электронной почты (даже в диалоговом окне Открыть по умолчанию указан тип файлов *.eml). Жаль, но программа платная (несмотря на то что, судя по дате последнего обновления, работа над нею прекращена). Незарегистрированная версия не имеет функциональных ограничений, но работает только 30 дней.
Программа имеет простой интерфейс, чем-то напоминающий «Блокнот». Только многооконный. Работать с ней очень просто - вставляем текст из буфера обмена или открываем нужный файл с сообщением. Затем выбираем команду Автоматическое декодирование, если не помогло - Ручное. Правда, в этом случае придется подучить таблицы транслитерации. Каких-либо дополнительных функций программа не имеет. Насчет скорости и точности декодирования - если первый параметр вполне конкурентоспособен, то о втором, к сожалению, этого не скажешь. Etype Mail Decoder не распознал правильно ни одного сложного текста.
Итог - неплохой перекодировщик, хотя до «Штирлица» ему далеко. Но за что платить ?
Recoder
Эта программа, судя по всему, не предназначена для расшифровки и перекодирования текстовых файлов. Она скорее пригодится веб-дизайнерам, так как позволяет создавать одну и ту же страницу в разных кодировках (доступны WIN, DOS, KOI, MAC, ISO, LAT). Единственная трудность заключается в том, что требуется знать кодировку исходного файла.
Программа имеет простой интерфейс и минимум настроек. Выбираете исходный файл или группу файлов, исходную и требуемую кодировку, нажимаете на кнопку Выполнить и получаете папки с файлами в разных кодировках. Скорость преобразования отличная.
SNK Decode!
Цитата из справочной системы: «SNK DEcode! может перекодировать текст из/в DOS-OS/2 (cp 866), Windows (cp 1251), UNIX (Koi-8r cp), Macintosh и ISO 8859-5 кодовых страниц в любой последовательности и поддерживает до пяти уровней перекодирования за один проход. Кроме того, поддерживается раскодирование текста из form-urlencode (письма, высланные из формы в браузере, типа &N1=%C0%C1%C2%C3%C4). Поддерживается также интерфейс командной строки».
Жаль, но программа очень плохо справилась с примерами «Штирлица». Судя по всему, перекодирует текст она хорошо, а вот кодировку исходного файла частенько не «узнает». Зато скорость работы очень даже радует.
Тем, кто хоть немного разбирается в схемах кодировки, тут открыт простор для творчества. Имеется возможность подстроить интерфейс. В общем, продукт неплохой и достаточно функциональный, и все бы хорошо, если бы не ошибки с определением кодировки…
P.S.: те, кто работает с командной строкой или пользуется MS DOS, могут воспользоваться, например, программой Convert (70 Кб).