Кодировка в DOS окнах (программах)
В качестве локального Apache сервера я использую Denwer. И есть в нем такая особенность, стоит в папку Home положить файл с русским названием как окно запуска/и перезапуска начинает работать с поломанной кодировкой. На скриншоте ниже это хорошо видно.
Долго думал как решить эту проблему. По находил кучу решений, пробовал прописать локаль в реестре windows. Но все вышло намного проще.
Нужно всего лишь сменить шрифт в этом окне. Вот как это делается.
1) Кликаем правой кнопкой на заголовке окна, получаем контекстное меню. В нем выбираем «Свойства» или лучше сразу «Умолчания»
P.S. Если вы меняете кодировку с пункта «Свойства» то изменения произойдут только для данного окна. Поэтому лучше сразу менять настройки по пункту «Умолчания». Так настройки будут применены ко всем окнам Dos программ.
2) Появляется окно со свойствами. Идем на вкладку «Шрифт» и меняем шрифт, скажем на Lucida Console. Джем «Ок» — и вуаля, теперь в окнах с Dos программами снова русский текст. Добро восторжествовало!)
Как прочесть «агббЄЁ© ⥪бв» ?
Безусловно, Вы уже поняли, что содержащиеся в заголовке слова написаны по русски, но в кодировке DOS (таблица 866). Несмотря на повсеместное победное шествие Windows с её кодовой страницей 1251, нам до сих пор очень часто попадаются тексты в старой кодировке. Многие из них имеют расширение txt и открываются в Блокноте. Другие имеют нестандартные расширения, и при попытке открыть их двойным щелчком Windows запускает диалог для выбора программы (не нравится мне это). Если Вы читали мою заметку «Разгон блокнота», то знаете, как победить эту дурную привычку Окошек.
Существует множество бесплатных программ как для чтения в разных кодировках, так и для трансляции кодировок друг в друга. Их общий недостаток — их нужно откуда-то взять и установить. Между тем, на Вашем компьютере уже присутствуют как минимум 3 программы, с помощью которых можно прочесть все возможные кодировки русского языка (DOS, ISO, KOI-8R). Посмотрим, на что способна каждая из них.
Блокнот
Если Вы уже открыли файл в блокноте и только после этого обнаружили, что он создан в OEM (она же DOS) кодировке, можно посмотреть его прямо в Блокноте. Если Вы уже знаете, что файл содержит не Windows-текст, использовать Блокнот я не советую. Неудобно это. Сейчас Вы поймёте, почему.
Для перехода к OEM-кодировке выберите Правка/Шрифт. Откроется диалог Выбор шрифта. В прогручивающемся списке Шрифт этого диалога найдите Terminal и щёлкните ОК.
Недостаток этого метода в сложности переключения кодировок. Кроме того, теперь, чтобы посмотреть текстовый файл в кодировке Windows, придётся тем же способом возвращать на родину прежний шрифт (он называется Fixedsys). Так что применять Блокнот не стоит. Оставьте его для Windows-кодировки и английских текстовых файлов.
Как это ни странно, но в поставке Windows 98 SE до сих пор присутствует «Редактор MS-DOS», ведущий свою родословную от MS-DOS EDIT, который входил в систему программирования QBasic для DOS. Как следует из названия, это DOS-приложение. К счастью, это ещё и часть Windows, поэтому никаких проблем при его запуске в окне не возникает. Использовать его по прямому назначению (в качестве редактора) довольно глупо. Но как вьюер для текстовых файлов DOS он вполне подойдёт. Файл программы называется Edit.com и находится в папке Windows\Command . Чтобы использовать его для просмотра текста, создайте для него ярлык на Рабочем столе.
Чтобы создать на Рабочем столе ярлык для файла, перетащите его на Рабочий стол правой кнопкой мыши и выберите соответствующий пункт в открывшемся меню.
Ярлык «Редактора MS-DOS» выглядит как клавиатура. Теперь достаточно перенести на него файл, и тот откроется в окне MS-DOS.
Не стоит открывать его в полноэкранном режиме.
Во-первых, Вы не сможете работать с Буфером обмена Windows.
Во-вторых, частота вертикальной развёртки в этом режиме составляет всего 60 Гц, и это вредно для глаз.
В-третьих, если у Вас по каким либо причинам отключена поддержка русского языка в MS-DOS (это три строчки в Autoexec.bat ), вместо ожидаемых русских букв Вы опять увидите абракадабру.
«Редактор MS-DOS» в принципе неплохо справляется с ролью вьюера, и я рекомендовал бы его на эту роль. если бы не знал лучший вариант.
Microsoft Internet Explorer
Да, да, да! Тот самый MS IE, которым Вы просматриваете странички в Интернете. В отличие от двух перечисленных программ, он позволяет смотреть текстовые файлы в любой (не извращённой) кодировке русского языка. Всё очень просто.
Запускаете IE в автономном режиме. Только не разворачивайте его на весь экран. Теперь перетаскиваете в его окно нужный файл из Проводника. У меня стоит IE5.01 со включённым автоопределением кодировки. Поэтому файл открывается сразу в нужной кодировке. Если по каким-то причинам IE ошибся, или автоопределение не установлено, всегда можно выбрать кодировку вручную из меню Вид.
Если Вы не хотите использовать программы, не входящие в Windows, IE — то, что Вам нужно. Тем не менее я обычно пользуюсь четвёртой программой.
Wpview
Думаю, никто ещё не забыл такую оболочку для DOS как Norton Commander. Она стала родоначальником огромного количества клонов, обладающих теми или иными достоинствами и недостатками. Многие из них живы до сих пор и продолжают плодиться усилиями энтузиастов. NC и по сей день установлен на огромном количестве компьютеров, и многие до сих пор по неведомой мне причине для совершения файловых операций даже из под Win9.x запускают любимые синие панельки.
NC есть и на моём винчестере, правда, я пользуюсь им только при необходимости загрузить компьютер в чистом DOS`е. Так вот, в русском NC5, которым я для этого пользуюсь, есть функция просмотра файлов. Из NC она вызывается нажатием клавиши F3. Она умеет просматривать 17 текстовых форматов, плюс просмотр файла в шестнадцатиричных кодах. В числе форматов: DOS и Windows текст с форматированием и без, а также RTF. С поддержкой русского языка!
Запускается этот вьюер практически мгновенно, чего не скажешь про MS IE, а это немаловажно для не слишком мощного компьютера, как мой. Знаю, у Вас возник закономерный вопрос: как это, мгновенно, если надо NC запустить, потом файл в нём найти да ещё и кодировку выбрать? Ответ прост.
За просмотр текстовых файлов в NC отвечает отдельная утилита Wpview.exe . Она вполне работоспособна и отдельно от пакета. Для этого я создал для неё ярлык на рабочем столе (о создании ярлыка см. выше).
Мне не нравится значок, которым Windows награждает приложения DOS по умолчанию. Но это легко исправить. Щёлкните ярлык правой кнопкой и выберите в меню Свойства. На вкладке Программа нажмите кнопку Сменить значок. Откроется диалог Изменение значка. Поскольку Вы меняете значок для DOS-приложения, в диалоге сразу будет открыта библиотека PIFMGR.DLL . Можно открыть другие библиотеки значков или отдельные файлы ico , нажав кнопку Обзор. Но лично мне показался соответствующим смыслу и виду программы шестой значок в верхнем ряду этой библиотеки (вид на голубое небо через серое окно). После первого запуска Wpview Вы поймёте, почему.
Чтобы посмотреть файл, я перетаскиваю его из Проводника на значок этой утилиты. И всё. Что касается кодировки, то программа помнит её последнюю установку, так что если Вы будете использовать её главным образом для просмотра текстовых файлов DOS, никаких задержек для переключения не будет.
Shtirlitz
Для расширения кругозора
Полноты ради следует вспомнить о так называемых извращённых кодировках русского языка. Возможно, Вам так и не придётся столкнуться с ними — и слава Богу. Их описание не является темой данной статьи. Если же Вы хотите поподробнее изучить данный вопрос, что мною всячески приветствуется, милости прошу сюда.
Если Вы впервые сталкиваетесь с этим термином, поясняю, что извращённые кодировки — это порождение некорректного взаимодействия клиентских почтовых программ и серверов почты. Так что если Вам довелось получить письмо, которое не читается ни в одной из стандартных кодировок, значит, его «извратил» почтовый сервер по пути прохождения. Это печально, но не смертельно. Некоторые почтовые программы умеют читать такие письма, но если Вы, как и я, пользуетесь Outlook Express, Вам понадобится отдельная программа для чтения такого письма. Их немало. Можно спорить о достоинствах и недостатках каждой конкретной из них, но лично я остановился на Штирлице 3.0 Всеволода Лукьянина. (В этом месте полагается похохмить насчёт названия программы, но я из вредности этого делать не буду.)
Нет смысла перечислять его возможности: скорее всего, они с лихвою перекроют все Ваши запросы. Но маленький совет дам. Удобно настроить программу так, чтобы она проверяла обновление Буфера обмена. Это позволит раскодировать письма на лету, просто копируя их в Буфер. Впрочем, перетаскивание файлов в окно программы Штирлиц тоже поддерживает.
Есть одно полезное применение Штирлица, не связанное с почтой. Если Вам попался файл в котором есть куски и в DOS, и в Windows кодировках (мне такие встречались, хотя я не знаю, какую цель преследуют авторы этих текстов), Штирлиц прекрасно разберётся, что к чему, и приведёт весь текст «к общему знаменателю».
Вдогонку
Совершенно неожиданно для меня самого у этой темы возникло продолжение. Я давно уже расстался с надеждой найти полноценную замену Блокноту. Всё, что попадалось мне на софт-серверах было либо абсолютно не функциональным, либо напрягало обилием ненужных мне функций. Про размеры я просто молчу. Собственно, из этого и родилась данная статья. И вдруг от Игоря Шишло (огромное ему спасибо) мне приходит письмо с крохотным аттачем.
Обработав содержимое ZIP`а дустом (то есть AVP) на предмет заразы и никаких микробов не обнаружив, я извлёк оттуда нечто, поразившее меня своей простотой, удобством и размерами. Оно называлось Bred2. Как удалось выяснить, автора зовут Олег Булычёв (Браво, маэстро!). Программа freevare, но я бы заплатил за неё с получки :). Английская версия лежит на Листсофте. У нас здесь русская. К сожалению, не удалось связаться с автором для получения разрешения на это. Сервер заворачивает назад письма, отправленные по указанному в хелпе адресу. Так что прости нас, Олег.
Теперь о предмете разговора. Вот 12 его отличий от Блокнота:
- имеет настраиваемую панель инструментов;
- умеет импортировать файлы;
- помнит 10 недавно открытых документов;
- делает многоуровневый откат (. );
- выравнивает текст четырьмя способами;
- помогает просмотреть макет перед выводом на печать;
- умеет проводить автоматическую замену в тексте (. );
- понимает несколько кодировок и позволяет оперативно их переключать, а также гонять текст из одной в другую (. );
- позволяет выбрать для каждой кодировки вид и размер шрифта;
- выводит текст, используя Ваши любимые цвета (например, зелёненькие буквочки на оранжевом фоне :));
- окрывает файлы любого размера, по заверениям автора — до половины ОЗУ Вашего компьютера (прощай, WordPad. );
- поддерживает кучу горячих клавиш для любителей не пользоваться мышью, в том числе мой любимый CTRL-S для сохранения (. ).
Русский текст в консоли
мы получим «абракадабру»:
Почему так происходит?
Консоль работает в кодировке DOS (codepage 866).
Блокнот Windows создает пакетный файл в кодировке WIN (codepage 1251).
Поэтому, когда Вы запускаете файл, консоль отображает его в своей (DOS) кодировке.
1 способ (сохранение файла в кодировке OEM-866):
Скачаем текстовый редактор, поддерживающий сохранение текста в кодировке OEM-866 (DOS) :
Чтобы создать новый файл в кодировке DOS:
Меню «Файл» -> «Сохранить как. » -> из выпадающего списка выбрать «Кодировка OEM-866«.
Файл должен иметь расширение bat или cmd.
Для себя я настроил AkelPad так, чтобы он всегда сохранял в кодировке OEM-866 (Настройки -> Параметры -> Кодировка по-умолчанию -> OEM-866.)
Скачать.
Сам пользуюсь вот такой модификацией что и Вам советую. Скачать.
Или качаем с официального сайта.
Чтобы правильно сконвертировать уже имеющийся в редакторе код с кириллицей :
Войти в редактор.
1) Ctrl+A, скопировать код.
2) Удалить код.
3) Меню «Кодировки» -> выбрать «Сохранить в DOS-866«.
4) Вставить код.
5) Сохранить, запустить.
Полезные горячие комбинации клавиш:
Запуск скрипта (Ctrl + F5)
На весь экран (F11)
Сохранить (Ctrl + S)
Открыть в кодировке WIN (Alt + W)
Открыть в кодировке DOS (Alt + D)
Чтобы создать новый файл в кодировке DOS:
Меню «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM-866»
«Файл» -> «Сохранить как. » -> пишем имя файла и расширение bat или cmd -> Сохранить.
Чтобы правильно сконвертировать уже имеющийся в редакторе код с кириллицей :
Войти в редактор.
1) Ctrl+A, скопировать код.
2) Удалить код.
3) Меню «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM-866»
4) Вставить код.
5) Сохранить, запустить.
Помните: в редакторе не должно быть видно «крякозябер», иначе это значит: Вы неправильно скопировали код.
В Windows Vista, 7 часто бывает, что код с форума «портиться» в буфере. Выход: когда копируете код, убедитесь, что включена русская раскладка клавиш.
2 способ (смена кодовой страницы):
Сменить кодовую страницу консоли.
А именно, в начале пакетного файла написать:
Кодирование текстовой информации
Таблица кодов ASCII
32
» jsaction=»rcuQ6b:WYd;»>
Кодировка Windows 1251
Кодировка КОИ-8
Кодировка ISO
Кодировка MS-DOS
Практическая работа «Кодирование текстовой информации»
Задание 1. Закодировать с помощью таблицы ASCII слова:
Задание 2. Декодируйте следующие тексты, заданные десятичным кодом:
a. 192 235 227 238 240 232 242 236;
b. 193 235 238 234 45 241 245 229 236 224;
c. 115 111 102 116 119 97 114 101.
Задание 3. В текстовом редакторе Блокнот ввести с помощью числовых кодов последовательность символов в кодировках Windows и MS-DOS.
Ввод символов с помощью числовых кодов в текстовом редакторе Блокнот
а) Запустить стандартное приложение Блокнот командой [Программы-Стандартные-Блокнот].
б) С помощью дополнительной цифровой клавиатуры при нажатой клавише
в) С помощью дополнительной цифровой клавиатуры при нажатой клавише
- 143 174 162 239 167 160 171 160 32 174 225 165 173 236 32 175 165 225 226 224 235 169 32 228 160 224 226 227 170
- 136 32 162 165 164 165 224 170 168 32 225 32 170 224 160 225 170 160 172 168 32 162 167 239 171 160 46
- 144 160 173 168 172 32 227 226 224 174 172 44 32 175 224 174 229 174 164 239 32 175 174 32 175 160 224 170 227 44
- 138 168 225 226 236 239 32 175 174 167 174 171 174 226 174 169 32 174 161 162 165 171 160 46
- Задание 4. Кодирование и декодирование текстовой информации
а) Заполните таблицу в программе Microsoft Word: