- Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)
- Исправляем проблему с кодировкой с помощью смены шрифта
- Исправляем проблему с кодировкой с помощью смены кодировки
- Кодировка в bat файлах
- Вывод текста в кодировке Win-1251 из bat-файла, текст которого в кодировке OEM-866
- Русский текст в консоли
- BAT на русском (русский текст в командной строке BAT)
- Почему нет отображается русский текст в командной строке BAT?
- Создать новый BAT файл поддерживающий русские буквы
- Конвертировать готовый BAT скрипт с кириллицей
Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)
В некоторых случаях, когда используется неверная кодировка, могут возникать так называемые кракозябры или иероглифы, т.е. не читаемые символы, которые невозможно разобрать при работе с командной строкой. Эти проблемы могут также возникать и при запуске различных BAT-файлов. В данной статье мы расскажем о том, как можно сменить шрифт или кодировку, чтобы избавиться от этой проблемы. Пример таких не читаемых символов можно видеть на картинке ниже:
Исправляем проблему с кодировкой с помощью смены шрифта
Первым делом нужно зайти в свойства окна: Правой кнопкой щелкнуть по верхней части окна -> Свойства -> в открывшемся окне в поле Шрифт выбрать Lucida Console и нажать кнопку ОК.
После этого не читаемые символы должны исчезнуть, а текст должен выводиться на русском языке.
Исправляем проблему с кодировкой с помощью смены кодировки
Вместо смены шрифта, можно сменить кодировку, которая используется при работе cmd.exe.
Узнать текущую кодировку можно введя в командной строке команду chcp , после ввода данной команды необходимо нажать Enter .
Как видно на скриншоте, текущая используемая кодировка Windows-1251
Для изменения кодировки нам необходимо воспользоваться командой chcp , где — это сам код кодировки, на которую мы хотим переключиться. Возможные значения:
- 1251 — Windows-кодировка (Кириллица);
- 866 — DOS-кодировка;
- 65001 — Кодировка UTF-8;
Т.е. для смены кодировки на DOS, команда примет следующий вид:
Для смены кодировки на UTF-8, команда примет следующий вид:
Для смены кодировки на Windows-1251, команда примет следующий вид:
Кодировка в bat файлах
В этой статье я хочу поговорить о кодировке русского текста в bat файлах. Имеются различные способы правильного отображения кирилицы в bat файлах. Некоторые из достаточно запутанные и сложные. Так как я сторонник простоты и эфффективности, то в этой статье я разберу два самых простых способа, которых вам будет достаточно в самых различных ситуациях.
Создадим какой-нибудь bat файл, так называемый батник. Будет он называться test.bat. Ранее с помощью обычного блокнота, в нём были набраны строки:
При запуске его как bat файла, выводятся две строки. Одна на латинице, другая на кирилице.
Итак, что мы видим, строка на латинице выводится без изменений, строка на кирилице в виде каких-то скрякозябров. Это то, что случается в случае не правильной кодировки. Теперь давайте разберёмся, почему так получилось, и как это поправить.
Первое, документ test.bat обработал и вывел интерпритатор командной строки(cmd). Cmd кодирует програмный код в своей кодировке. Это, так называемая, DOS кодировка. Как подробнее узнать, какая это кодировка?
Откройте test.bat в любом текстовом редакторе(я воспользуюсь Notepad++). Наберите команду chcp.
Это команда покажет, в какой кодировке выполняет cmd bat файл. Сохраните документ и запустите его.
Итак, мы видим строку: Текущая кодовая страница: 866. Это говорит о том, что cmd кодирует bat файл в кодировке 866. Теперь выясним, в какой кодировке закодирован наш bat файл. Для этого можно открыть его в том текстовом редакторе, который показывает кодировку документа. Я воспользуюсь для этого редактором Notepad++. Открыв в нём test.bat в нижней правой части мы видим кодировку Windows-1251.
Теперь мы видим несоответствие в кодировках. Что нужно сделать? Нужно перекодировать документ test.bat в ту кодировку, в которую кодирует документ интерпритатор командной строки. Как это сделать? Открыв документ test.bat в текстовом редакторе Notepad++, в верхнем горизонтальном меню выберите: Кодировки > Кодировки > Кирилица > ОЕМ866.
Теперь в Notepad++ там, где была кодировка Windows-1251, стала ОЕМ866. Не забывайте сохранять документ после различных манипуляций с ним. Теперь можно опять запустить уже перекодированный файл test.bat.
Мы видим, что и кирилица и латиница стали корректно отображаться после работы команды вывода echo в test.bat.
Что если у вас на компьютере нет редактора Notepad++, и вы принципиально не хотите его устанавливать. Или текст вы не набирали сами, а где-то скачали его, и он в DOS кодировке.
К примеру, вы хотит скачать в текстовый файл справочник команд CMD. Создайте в папке С файл Help.txt. Запустите на выполнение bat файл со следующим кодом.
Вот текст записанный в файл Help.txt.
Теперь добавьте в bat файл следующую строку: «chcp 1251 >nul». Она аннулирует действующую кодировку 1251, которая мешает нам читать кирилицу.
И запустите его на выполнение.
Мы разобрали два простых способа, как в bat файлах настроить кодировку для правильного отображения русского текста. Надеюсь моя статья была вам полезна.
Вывод текста в кодировке Win-1251 из bat-файла, текст которого в кодировке OEM-866
примем за аксиому утверждение: «bat-скрипт следует создавать в кодировке DOS (OEM-866)»
. пусть в скрипте есть код, который формирует некий файл с текстом:
НО! далее, по алгоритму, необходимо чтобы этот файл file.txt был в кодировке Windows (Win-1251), тогда для его перекодировки можно использовать технику уважаемого ComSpec
а можно сразу формировать файл в кодировке Win-1251:
Найти в строке в текстовом файле в кодировке OEM 866 (кириллица и латиница), слова, содержащие кириллицу
Приветствую, форумчане! Вот уже несколько дней не могу решить проблему. Дано: строка в текстовом.
Модифицировать скрипт так, чтобы вывод результатов его работы был в кодировке Win-1251
Приветствую уважаемый форум и прошу помощи! Не хватает знаний и навыков в VBS самостоятельно.
Загрузка в Memo текста из файла в кодировке Win (cp1251)
Решение нашел — но не уверен, что оно лучшее. В исходном тексте (ниже) закомментированные варианты.
Как данные, полученные в кодировке Win-1251 привести к читаемому виду в QString?
Привет ещё раз! Приходят данные из одной функции по указателю на void*. Формат и длина данных.
b0gus, Ваше решение интересно и полезно, поскольку создание файла с текстом в кодировке Win-1251 с помощью пакетного файла с кодом в кодировке OEM-866 часто является необходимостью, например, при дальнейшем использовании созданного файла в качестве списка строк для поиска командой «FINDSTR» в файлах, содержимое которых было сохранено также в кодировке Win-1251.
«Фишка» Вашего решения заключается в использовании команды «ECHO» в новом процессе.
Но можно также использовать задание переменной (переменных) для строк, например:
Русский текст в консоли
мы получим «абракадабру»:
Почему так происходит?
Консоль работает в кодировке 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 способ (смена кодовой страницы):
Сменить кодовую страницу консоли.
А именно, в начале пакетного файла написать:
BAT на русском (русский текст в командной строке BAT)
Ваш BAT скрипт на русском ни как не работает? Вместо русского языка отображаются какие-то кракозябры? Это легко исправить!
Почему нет отображается русский текст
в командной строке BAT?
У вас в bat кириллица отображается нет так ка надо? Все дело в кодировке, если вы создадите bat в обычном, предустановленном в Windows блокноте, напишите команду, например echo Привет мир, то на выводе, вместо ожидаемого приветствия, получите набор непонятных символов.Для того чтобы отображался русский текст в бат файле, для начала забудьте про обыкновенный блокнот и начните пользоваться «нормальным», специализированным текстовым редактором Notepad ++!
Создать новый BAT файл поддерживающий русские буквы
Для того, чтобы русский язык отображался как надо, необходима другая кодировка в bat файле!
- Вначале на панели выбираем в меню «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM-866» и далее создаем скрипт
- Когда скрипт будет готов переходим на панели в «Файл» -> «Сохранить как…» -> и пишем название файла и указываем bat или cmd
Конвертировать готовый BAT скрипт с кириллицей
- Откройте в Notepad ++ скрипт, скопируйте весь код
- Удалить весь код
- На панели выбираем в меню «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM-866«
- Вставляем весь код обратно
- Сохраняем изменения и получаем BAT скрипт с отображением русского языка
У вас остались еще дополнительные вопросы? Пишите их в комментариях, о том что у вас получилось или наоборот!
Вот и все! Больше статей и инструкций читайте в разделе Статьи и Хаки Android. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!