Bat файл кодировка windows

Настройка кодировки шрифтов в 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 файла, выводятся две строки. Одна на латинице, другая на кирилице.

Читайте также:  Windows old что делать с этой папкой

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

Первое, документ 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

Читайте также:  Windows pdf file reader

а можно сразу формировать файл в кодировке 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 файле!

  1. Вначале на панели выбираем в меню «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM-866» и далее создаем скрипт
  2. Когда скрипт будет готов переходим на панели в «Файл» -> «Сохранить как…» -> и пишем название файла и указываем bat или cmd

Конвертировать готовый BAT скрипт с кириллицей

  1. Откройте в Notepad ++ скрипт, скопируйте весь код
  2. Удалить весь код
  3. На панели выбираем в меню «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM-866«
  4. Вставляем весь код обратно
  5. Сохраняем изменения и получаем BAT скрипт с отображением русского языка

У вас остались еще дополнительные вопросы? Пишите их в комментариях, о том что у вас получилось или наоборот!

Вот и все! Больше статей и инструкций читайте в разделе Статьи и Хаки Android. Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней!

Оцените статью