Исправить текст в конвертере ↓
Командная строка Windows по историческим причинам работает в своей кодировке — OEM. В русской версии системы это DOS-кодировка CP866, а не Windows-1251 и не UTF-8, в которых работают графические программы. Узнать текущую кодировку консоли можно командой chcp: ответ «Текущая кодовая страница: 866» означает CP866.
| Что видно | Где | Что произошло |
|---|---|---|
╨Я╤А╨╕╨▓╨╡╤В | В консоли | Программа или bat-файл выводит UTF-8, а консоль показывает его в CP866 |
ЏаЁўҐв | В файле, открытом в Блокноте | Вывод консоли (команда > file.txt) записан в CP866, а Блокнот читает его как Windows-1251 |
╧ЁштхЄ | В консоли | Bat-файл сохранён в Windows-1251 (ANSI), а консоль работает в CP866 |
я╗┐@echo off и ошибка «не является внутренней или внешней командой» | В консоли | Bat-файл сохранён в UTF-8 с BOM: метка в начале файла прилипла к первой команде |
Испорченный текст из консоли или файла вывода можно исправить в конвертере ниже кнопкой «Определить кодировку текста».
Вариант 1 — UTF-8. Первой строкой файла поставьте chcp 65001 >nul, а сам файл сохраните в UTF-8 без BOM (в Блокноте это пункт «UTF-8», а не «UTF-8 с BOM»; в Notepad++ — «Кодировки» → «Преобразовать в UTF-8 без BOM» или просто «UTF-8»). Команда chcp 65001 переключает консоль в UTF-8 до конца работы окна.
Вариант 2 — CP866. Сохраните bat-файл в кодировке OEM 866: в Notepad++ выберите «Кодировки» → «Кириллица» → «OEM 866» и наберите текст заново либо перекодируйте файл в конвертере (загрузите его и скачайте в CP866). Так файл будет работать и на старых системах.
chcp 65001 — вывод многих программ станет UTF-8.| Out-File file.txt -Encoding utf8 вместо >, который записывает UTF-16.chcp 65001 в начале нужных скриптов.