Страница 200 из 299
Решение проблем
В связи с наличием пяти различных кодовых страниц для русского языка возникает две проблемы:
1. Обеспечить возможность чтения текстов, написанных в соответствии с одной кодовой страницей, в операционных системах с другой кодовой страницей. Например, текстов MS-DOS в Windows9x.
2. Получить возможность расшифровывать неоднократно перекодированные электронные письма.
Для решения этих проблем есть много способов, реализуемых с помощью специальных программ или компонентов программных пакетов. Ниже будет рассказано о некоторых из них.
Microsoft Word 97
Да-да, не удивляйтесь — как ни странно, в этом редакторе есть средство открытия файлов в другой кодировке! Правда, поддерживается только возможность открытия и сохранения файлов в кодировке MS-DOS, но и это немаловажно — именно в этой кодировке распространяется большинство книг в "электронных библиотеках", огромное количество документов подготовлено в редакторах под MS-DOS и сохранено в текстовом формате в кодировке MS-DOS. Как же использовать это средство?
Для начала в меню Сервис-Параметры-Общие надо поставить флажок в графе "Подтверждать преобразование при открытии". После этого при открытии с помощью диалогового окна "Открыть" любых файлов с расширением, отличным от".doc", будет выдаваться диалоговое окно (см. слева), где можно будет выбрать нужный формат файла из предложенного списка.
Если вы открываете таким образом текст, представленный в кодировке MS-DOS, то лучше всего выбрать пункт "Текст DOS". Тогда при открытии файла его текст будет просто отображен на экране. Если файл, открытый таким образом, отредактировать и сохранить, то его формат сохранится, — он по-прежнему останется написанным в кодировке MS-DOS. Чтобы сохранить его в Windows-1251, надо воспользоваться пунктом меню "Файл-Сохранить как…" и указать там "Только текст" для сохранения в текстовом файле или другой формат для сохранения в нем.
При выборе в диалоговом окне выбора формата для открытия файла пункта "Текст MS-DOS с форматированием" Word предпримет попытку "отконвертировать" текст в формат Word. При наборе текста в редакторах под MS-DOS в качестве символа конца строки обычно используется символ конца абзаца (то есть клавиша "Enter"), а табуляция и выравнивание по центру или правому краю обозначаются пробелами. Применить к такому тексту методы форматирования (задание нужных полей и отступов, колонок, выравнивания по ширине) не представляется возможным, так как символы конца абзаца на концах строк будут мешать и не позволят тексту свободно перетекать из одной строки в другую, что требуется при подобном форматировании. Встроенный конвертор Word пытается исправить эту ошибку, но, увы, чаще всего делает это неудовлетворительно, и текст потом долго приходится править вручную.
В русской версии Microsoft Office 97 Professional есть специальный встроенный конвертер "Лексикон для DOS", его можно установить, выбрав соответствующий пункт при установке самого Office, но работа этого конвертера, хоть и несравненно лучше первого, все же оставляет желать лучшего.
Существует программа "Конвертор текста MS-DOS", специально предназначенная для обработки и оптимизации текста, набранного в MS-DOS. Разработка представляет собой макрокоманду для Microsoft Word 97 и Microsoft Word 2000 и запускается из Word. Она, кроме удаления лишних символов конца абзаца, также на основе количества пробелов перед первой буквой в строке устанавливает значение выравнивания (по ширине, по центру, по правому краю), заменяет несколько идущих подряд пробелов на один ("Лексикон" для MS-DOS пытается с помощью добавления лишних пробелов передать выравнивание текста по ширине), оптимизирует пробелы вокруг точек, запятых, других знаков препинания — ведь, в самом деле, пробел перед запятой выглядит несколько странно. Имеется возможность обработки сразу большого количества файлов с автоматическим их сохранением. Программа имеет множество настроек, могущих удовлетворить почти всех требовательных пользователей. "Конвертор текста MS-DOS" является частью пакета программ "ВерсткаТекстаКнижкой" и распространяется вместе с ним. Вы всегда можете загрузить этот пакет с адресов: http://antorlov.chat.ru и http://www.newtech.ru/~orlov.
К сожалению, работа с кодировками KOI-8, ISO-8859-5, Macintosh в среде Microsoft Word невозможна. Существуют макросы для перекодирования текста из K0I-8 в загруженном в Word тексте, но они работают медленно и поэтому пользоваться ими нецелесообразно.
В Microsoft Word 2000 и Microsoft Word ХР при открытии документа в кодировке MS-DOS производится попытка автоматической его конвертации в читаемый вид, однако она не всегда срабатывает корректно.
WordPad
Если под рукой нет ни Microsoft Office, ни каких-либо других программ для чтения текстов MS-DOS, то можно на крайний случай воспользоваться текстовым редактором WordPad, поставляющийся вместе с Windows9x. В меню этого редактора "Открытие файла" в качестве шаблона для имени файла надо указать пункт "Текстовые документы MS-DOS", и тогда открываемый текстовый файл будет отображен правильно.
ТехtViewer
С помощью вышеописанных средств — возможностей Word и WordPad — можно иногда выходить из положения, когда срочно надо напечатать или отредактировать файл, набранный в редакторах под MS-DOS, но при большом количестве таких файлов работа с ними станет весьма затруднительной. Однако в настоящее время имеется достаточно большое количество различных бесплатных программ, написанных русскими программистами специально для решения проблем совместимости различных кодировок. Одной из таких разработок является TextViewer Георгия Гуляева (рис. 13.10).
Рис. 13.10. TextViewer.
TextViewer открывает текстовые файлы и файлы в формате Rtf. Слева вверху на панели инструментов программы находятся шесть кнопок — пять из них позволяют просмотреть открытый документ в соответствующей кодировке (Dos-866, Windows-1251, KOI-8, Macintosh, Iso-8859-5), а шестая — просмотреть текстовое содержимое файла в формате Rtf, если таковой будет загружен в TextViewer. Открытый файл можно сохранить в нужной кодировке, выбрав соответствующую опцию в окне "Файл-Сохранить как..". Имеется возможность произвести печать файла, использовать функцию предварительного просмотра перед печатью, поиск в тексте и замену фрагмента. Можно выбрать шрифт для отображения текста, с помощью удобного диалогового окна связать программу TextViewer с различными типами текстовых файлов.
В целом можно сказать, что разработка Георгия Гуляева — превосходная замена стандартному "Блокноту". Возможность работы с различными кодировками, открытие файлов любого размера, возможность замены — все это дает TextViewer'y неоспоримые преимущества перед Notepad'ом. Однако на компьютерах, не оснащенных процессором Pentium, TextViewer весьма медленно запускается, в связи с чем использование его как стандартного редактора текстовых файлов, например, на 486-м процессоре будет затруднительно.