Начинающему пользователю ПК

Начинающему пользователю ПК

Главная » Командная строка » Не корректно отображается Русский текст в CMD? Решение есть!
Кнопка добрых дел

Не корректно отображается Русский текст в CMD? Решение есть!

Как корректно отобразить Русский текст в CMD. Проблемы с кодировкой могут возникнуть, например, при выполнении Bat файла, когда нужно вывести в консоль русский текст и при других обстоятельствах, о которых речь пойдёт далее.

Рассмотрим пример: когда нужно вывести в консоль Русский текст, скажем «Примет мир». Для этого создадим Bat файл с именем «1.bat». Используйте для этого обычный Блокнот Windows (Notepad.exe) Запишем в него  следующие строки!

@Echo off

  echo.
     echo ПРИВЕТ МИР
    echo.
 Pause

Для тех, кто не понял или не в курсе, строчки «echo.» я добавил специально, что бы были отступы, от строки «Примет мир»

Теперь запускаем файл 1.bat и результат будет такого вида.

Русский текст в CMD

Как видим проблема с кодировкой в cmd на лицо. И произошло это по следующей причине.

Стандартный блокнот Windows сохранил Bat файл в кодировке «1251» а консоль вывела его в кодировки «866». Вот от сюда все проблемы!

Решения проблемы с кодировкой в CMD. 1 Способ.

Для решения проблемы нужно просто использовать текстовой редактор, с помощью которого можно сохранить текст в кодировке «866». Для этих целей прекрасно подходит «Notepad++» (Ссылку для загрузки Вы можете найти в моём Twitter-e).

Скачиваем и устанавливаем на свой компьютер «Notepad++».

После запуска «Notepad++» запишете в документ те же строки, которые мы уже ранние записывали в стандартный блокнот.

@Echo off

  echo.
     echo ПРИВЕТ МИР
    echo.
 Pause

Теперь осталось сохранить документ с именем «2.bat» в правильной кодировке. Для этого идём в меню «Кодировки > Кодировки > Кириллица > OEM-866»

cmd сменить кодировку

и теперь сохраняем файл с именем «2.bat» и запускаем его! Поле запуска результат на лицо.

cmd смена кодировки

Как видим, текст на Русском в CMD отобразился, как положено.

Решения проблемы с кодировкой в CMD. 2 Способ.

Теперь рассмотрим ещё одну ситуацию, когда могут возникнуть проблемы с кодировкой в CMD.

Допустим, ситуация требует сохранить результат выполнения той или иной команды в обычный «TXT» файл. В приделах этого поста возьмём для примера команду «HELP».

Задача: Сохранить справку CMD в файл «HelpCMD.txt. Для этого создайте Bat файл и запишите в него следующие строки.

@Echo off

 Help > C:\HelpCMD.txt
 Pause

После выполнения Bat файла в корне диска «C:\» появится файл «HelpCMD.txt» и вместо справки получится вот что:

поменять кодировку cmd

Естественно, такой вариант не кому не понравится и что бы сохранить справку в понятном для человека виде, допишите в Bat файл строку.

chcp 1251 >nul

Теперь содержимое кода будет такое.

@Echo off
chcp 1251 >nul

Help > C:\HelpCMD.txt

Pause

После выполнения «Батника» результат будет такой:

поменять кодировку cmd

Вот так на много лучше, правда?

Пожалуй, на этом я закончу пост. Добавить больше нечего. Если у Вас имеются какие-то соображения по данной теме, буду рад Вашему комментарию к посту.

Дополнительно из комментариев то Garric

Автор очень хорошо описал принцип. ! Но это неудобно.
Нужно бы добавить. Если автор добавит это в статью то это будет Good.
Создаём файл .reg следующего содержания:
——
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.bat\ShellNew]
«FileName»=»BATНастроенная кодировка.bat»
——
Выполняем.
——
Топаем в %SystemRoot%\SHELLNEW
Создаём там файл «BATНастроенная кодировка.bat»
Открываем в Notepad++
Вводим любой текст. (нужно!) Сохраняемся.
Удаляем текст. Меняем кодировку как сказано в статье. Сохраняемся.
———-
Щёлкаем правой кнопкой мыши по Рабочему столу. Нажимаем «Создать» — «Пакетный файл Windows».
Переименовываем. Открываем в Notepad++. Пишем батник.
В дальнейшем при работе с файлом не нажимаем ничего кроме как просто «Сохранить». Никаких «Сохранить как».

2014-01-19 / Комментариев: 10 / Просмотров: 49235
Кнопка добрых дел
1-22-2014

По поводу Notepad++ не догадывался. Спасибо за информацию.

8-18-2014

А вот как бы наоборот сделать: отобразить на экране файл, сохранённый в кодировке win1251?

    1-2-2016

    Для этого есть команда chcp 1251…

      1-4-2016

      Спасибо, oak.ex_! Действительно, это работает. Проверял так: (может, кому пригодится)
      Я создал файл обычный в кодировке windows-1251, назвал его «test.bat». Вот его содержимое (без чёрточек):
      —————————————————
      @echo off
      chcp 1251
      echo Сейчас этот файл напечатает на экране сам себя.
      type %0
      pause
      —————————————————
      Вот, что он напечатал на экране, когда я его запустил (опять, без чёрточек):
      —————————————————
      Текущая кодовая страница: 1251
      Сейчас этот файл напечатает на экране сам себя.
      @echo off
      chcp 1251
      echo Сейчас этот файл напечатает на экране сам себя.
      type %0
      pause
      Для продолжения нажмите любую клавишу . . .
      —————————————————

        1-4-2016

        То есть, после команды chcp 1251:
        1. команда echo читала данные из bat-файла именно в этой кодировке
        2. команда type читала данные из входящего файла тоже именно в этой кодировке.

        4-24-2017

        Я не знаю, каким образом вы проверяли изменение кодировки, но у менч ничего не получилось.
        Скопировал весь приведённый текст и вставил в блокноте, сохранил.
        После запуска — крякозяблы продолжали отображаться, кодировка не меняется 1251

          5-4-2017

          Только что проверил на Win7 SP1. Скопировал, вставил в Блокнот, сохранил как test.bat. В диалоге сохранения слева от кнопки «Сохранить» указана кодировка ANSI (она там по умолчанию). Запустил — нормальный текст, без кракозябр. Не знаю, что у Вас не так. Как говорится, с моей стороны пули вылетели ровно, а что они в мишень не попали — так то мишень, значит, кривая. ¯\_(ツ)_/¯

11-30-2016

Предлагаю дополнить вариант с utf-8.
1. Врубаем в notepadd++ у файла кодировку UTF-8
2. Запускаем командную сроку в левом верхнем углу окна командной строки жмем на иконку левой кнопкой мыши. Затем свойства в выпадающем меню.
3. На вкладке шрифт выбираем «Lucida Console» и жмем ок.
4. теперь в файле в начале задаем кодировку chcp 65001
5. и теперь текст будет нормальной кириллицей с поддержкой Utf-8)

3-31-2017

Автор очень хорошо описал принцип. ! Но это неудобно.
Нужно бы добавить. Если автор добавит это в статью то это будет Good.
Создаём файл .reg следующего содержания:
——
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.bat\ShellNew]
«FileName»=»BATНастроенная кодировка.bat»
——
Выполняем.
——
Топаем в %SystemRoot%\SHELLNEW
Создаём там файл «BATНастроенная кодировка.bat»
Открываем в Notepad++
Вводим любой текст. (нужно!) Сохраняемся.
Удаляем текст. Меняем кодировку как сказано в статье. Сохраняемся.
———-
Щёлкаем правой кнопкой мыши по Рабочему столу. Нажимаем «Создать» — «Пакетный файл Windows».
Переименовываем. Открываем в Notepad++. Пишем батник.
В дальнейшем при работе с файлом не нажимаем ничего кроме как просто «Сохранить». Никаких «Сохранить как».

    4-6-2017

    Спасибо, добавил в пост.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *