Настройка кодировки шрифтов в cmd/bat (иероглифы, кракозябры)

В некоторых случаях, когда используется неверная кодировка, могут возникать так называемые кракозябры или иероглифы, т.е. не читаемые символы, которые невозможно разобрать при работе с командной строкой. Эти проблемы могут также возникать и при запуске различных BAT-файлов. В данной статье мы расскажем о том, как можно сменить шрифт или кодировку, чтобы избавиться от этой проблемы. Пример таких не читаемых символов можно видеть на картинке ниже:
Исправляем проблему с кодировкой с помощью смены шрифта

Первым делом нужно зайти в свойства окна: Правой кнопкой щелкнуть по верхней части окна -> Свойства -> в открывшемся окне в поле Шрифт выбрать Lucida Console и нажать кнопку ОК.
После этого не читаемые символы должны исчезнуть, а текст должен выводиться на русском языке.
Исправляем проблему с кодировкой с помощью смены кодировки

Вместо смены шрифта, можно сменить кодировку, которая используется при работе cmd.exe.
Узнать текущую кодировку можно введя в командной строке команду chcp , после ввода данной команды необходимо нажать Enter .
Как видно на скриншоте, текущая используемая кодировка Windows-1251
Для изменения кодировки нам необходимо воспользоваться командой chcp , где — это сам код кодировки, на которую мы хотим переключиться. Возможные значения:
- 1251 — Windows-кодировка (Кириллица);
- 866 — DOS-кодировка;
- 65001 — Кодировка UTF-8;
Т.е. для смены кодировки на DOS, команда примет следующий вид:
chcp 866
Для смены кодировки на UTF-8, команда примет следующий вид:
chcp 65001
Для смены кодировки на Windows-1251, команда примет следующий вид:
chcp 1251
Как установить шрифт через командную строку
Знаете ли Вы, что в свойствах окна командной строки можно использовать не только 2 шрифта? Все, что нужно знать для этого — просто применить хак реестра, чтобы разрешить другие шрифты, включая весьма удобочитаемые, которые стали доступны с Windows Vista и Office 2007.
Вы можете разрешить несколько шрифтов с фиксированной шириной. Давайте рассмотрим, как это работает.
[Как поменять шрифт по умолчанию для консоли команд]
Чтобы поменять шрифт, сделайте правый клик на плашке заголовка окна и выберите Properties (Свойства) из контекстного меню. Если Вы хотите установить значение по умолчанию для всех окон командной строки, то можете вместо этого выбрать опцию Defaults (Умолчания).

Теперь на закладке Font (Шрифт) вы сможете выбрать любой из шрифтов, который разрешен (через настройку в реестре, см. далее) для использования в окне консоли командной строки.

На скриншоте можно увидеть, что в списке разрешенных имеется шрифт Consolas. Этот шрифт по умолчанию не разрешен, но теперь мы научимся, как можно его разрешить.
[Разрешение использования дополнительных шрифтов для окна командной строки]
Чтобы разрешить использование дополнительных шрифтов в командной строке, Вам нужно ввести в реестр изменение. Для этого откройте редактор реестра regedit.exe, и с помощью поиска, или навигацией по дереву найдите следующий ключ реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
Зайдите в просмотр этого ключа, и в правой части окна редактора Вы увидите список разрешенных шрифтов True Type. Чтобы добавить туда еще один, добавьте новое значение типа String (Строка) под именем 00, и установите его значение в имя шрифта, который Вы хотите разрешить.
! Обратите внимание, что может понадобиться перезагрузить Ваш компьютер после внесения изменений, чтобы стало доступным использование новых шрифтов в окне консоли.

Как Вы видите на скриншотах, здесь был разрешен шрифт Consolas. Этот шрифт имеется на Windows Vista или в составе Office 2007. Но если Вы используете Windows XP, то можете получить этот шрифт, если просто установите у себя бесплатный Powerpoint 2007 Viewer (он содержит этот шрифт).

Даже на маленьких размерах шрифта буквы Consolas остаются хорошо читаемыми.
[Какие шрифты можно использовать для консоли cmd.exe]
Командная строка может принять только лишь шрифты с фиксированной шириной, так что даже не пытайтесь разрешить шрифты наподобие Comic Sans. В консоли работают шрифты наподобие White Rabbit:

Чтобы разрешить дополнительный шрифт, сохранив при этом разрешенным Consolas, сначала Вам нужно загрузить и установить его (правый клик на файле шрифта, выбрать Установить), после чего нужно в регистре добавить новую запись, но убедиться при этом, что у неё будет другое имя. Если имя 00 уже имеется, то можно использовать имена наподобие 000, или 00, 01, 02, и т. д.

После того, как шрифты разрешены, можно выбрать для консоли любой из них на той же закладке Font свойств окна (помните, что возможно понадобится перезагрузка или перелогин, чтобы изменения вступили в силу).

Некоторые шрифты в консоли не работают. Например, иногда со шрифтами фиксированного размера операционная система выдавала ошибку при попытке открыть свойства окна консоли:

Если такое случилось с Вами, то не волнуйтесь, просто вернитесь в редактирование реестра и удалите ссылку на неработающий шрифт.
[Ссылки]
1. Enable More Fonts for the Windows Command Prompt site:howtogeek.com .
Шрифт консоли windows cmd.exe
Если в консоли Windows (cmd.exe) вместо русских букв отображаются иероглифы и замена файлов системных шрифтов на оригинальные не помогает, то стоит попробовать изменить шрифт в настройках консоли.
- запустите консоль windows (cmd.exe);
- кликните правой кнопкой мыши на заголовок окна консоли и из меню выберите пункт «Свойства«;
- на вкладке «Шрифт» поменяйте его на Lucida Console.

Комментарии ( )
Star 08 ноября 2015, 18:10 # ↓ 0
Спасибо, помогло!
Я купил ноутбук на ebay, windows англоязычная была установлена, язык системы поменял, а консоле вот такая абракадабра была, не мог никак русский язык настроить, а переставлять ось было лень.
Олег 11 ноября 2015, 15:53 # ↓ 0
Респект, думал уже не найду решение.
Дмитрий 17 сентября 2016, 01:46 # ↓ 0
ВЛ 02 сентября 2021, 16:22 # ↓ 0
спасибо!… искал оригинальные шрифты винды, менял, запарился не чего не помогало… а тут так все просто оказалось)))
Руководство. Настройка пользовательского запроса PowerShell или WSL с помощью O My Posh
В этом руководстве представлены ресурсы и указания, которые помогут вам настроить командную строку для PowerShell или подсистемы Windows для Linux (WSL) с помощью Oh My Posh. Oh My Posh предоставляет возможности выбора темы для полностью настраиваемой пользовательской командной строки с цветовым кодированием состояния и командной строки Git.
В этом руководстве описано следующее:
- Установка шрифта Nerd
- Настройка командной строки PowerShell с помощью Oh My Posh
- Настройка командной строки WSL с помощью Oh My Posh
- Добавление отсутствующих значков папок или файлов с помощью Terminal-Icons

Установка шрифта Nerd
В настраиваемых командных строках для изменения стиля часто используются глифы (графические символы). Если шрифт не содержит соответствующие глифы, в командной строке может появиться несколько символов замены Юникода ▯. Чтобы в терминале отображались все глифы, рекомендуем установить шрифт Nerd.
(Если вам нужен шрифт, который выглядит как Cascadia Code, используйте шрифт Caskaydia Cove Nerd Font, созданный из репозитория Cascadia Code участником сообщества.)
После скачивания необходимо распаковать и установить шрифт в системе. (Добавление нового шрифта в Windows.)
Чтобы установить шрифт Nerd для использования с Oh My Posh и значками Терминала, откройте пользовательский интерфейс параметров Терминала Windows, выбрав Настройки (CTRL+,) в раскрывающемся меню Терминала Windows. Выберите профиль, в котором вы хотите применить шрифт (например, PowerShell), а затем щелкните вкладку Внешний вид. В раскрывающемся меню Начертание шрифта выберите CaskaydiaCove Nerd Font или любой другой шрифт Nerd, который вы хотите использовать в пользовательской командной строке.
Если вы решите использовать шрифт терминала, не поддерживающий глифы, например Cascadia Code PL, вы можете рассмотреть возможность использования темы Oh My Posh, которая содержит функцию minimal , указывающую, что дополнительные значки не требуются.
Настройка командной строки PowerShell с помощью Oh My Posh
Oh My Posh позволяет использовать полный набор цветов для определения и визуализации командной строки терминала, включая возможность использования встроенных тем или создания пользовательской темы.
Установка Oh My Posh для PowerShell
Чтобы настроить командную строку PowerShell, можно установить Oh My Posh с помощью winget. Введите команду :
winget install JanDeDobbeleer.OhMyPosh
- oh-my-posh.exe — исполняемый файл Windows;
- themes — последние темы Oh My Posh.
Вы должны будете согласиться с исходными условиями, при этом вам может встретиться экземпляр, доступный нескольким пакетам. В этом случае выберите идентификатор пакета, который вы хотите использовать, и повторно введите команду: winget install .

Чтобы использовать версию Oh My Posh из Microsoft Store, которая будет автоматически обновляться при наличии новых версий, используйте следующую команду:
winget install XP8K0HKJFRXGCK
Введите oh-my-posh version , чтобы подтвердить номер версии установки Oh My Posh. Чтобы убедиться, что у вас есть последние обновления, можно использовать следующую команду: winget upgrade oh-my-posh .
Если вы хотите установить последнюю версию Oh My Posh в PowerShell, возможно, сначала потребуется удалить кэшированные файлы модуля OMP и удалить старый модуль. Инструкции по выполнению этих действий можно найти в документации по Oh My Posh. Если вы лучше знакомы с установщиком Scoop или методом установки вручную, который предусматривает автоматизацию, их также можно использовать для установки в Windows. Просто следуйте инструкциям из документации по Oh My Posh.
Выбор и применение темы командной строки PowerShell
Полный список тем можно найти на странице тем для Oh My Posh.
Выберите тему и обновите профиль PowerShell с помощью следующей команды (вы можете заменить notepad предпочитаемым текстовым редактором):
notepad $PROFILE
Если вы получаете ошибку пути, возможно, у вас еще нет профиля для PowerShell. Чтобы создать его, используйте следующую команду PowerShell для создания профиля и повторите попытку открыть его с помощью текстового редактора.
new-item -type file -path $profile -force
Добавьте следующий фрагмент в конец файла профиля PowerShell, чтобы задать тему paradox (замените paradox предпочитаемой темой):
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression
Теперь каждый новый экземпляр PowerShell будет запущен с импортом Oh My Posh и установкой темы командной строки.
Если при попытке открыть новый экземпляр PowerShell возникает ошибка скрипта, политика выполнения для PowerShell может быть ограничена. Чтобы настроить политику выполнения PowerShell неограниченной, необходимо запустить PowerShell от имени администратора, а затем использовать следующую команду:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Это не профиль Терминала Windows. Профиль PowerShell является сценарием, который выполняется при каждом запуске PowerShell. Ознакомьтесь с дополнительными сведениями о профилях PowerShell.
Часто задаваемые вопросы и ответы на распространенные вопросы или проблемы см. в часто задаваемых вопросов и проблемах о О Мой Пош. Дополнительные сведения о конфигурации и общих параметрах, таких как восстановление текущего рабочего каталога, см. в документации по «О Мой Posh».
Настройка командной строки WSL с помощью Oh My Posh
Oh My Posh теперь позволяет настроить командную строку WSL, так же как и командную строку PowerShell, используя встроенные темы.
Установка Oh My Posh для WSL
Рекомендуем установить Oh My Posh для WSL, используя Bash, Zsh или другое средство, следуя инструкциям по установке в Linux из документации по Oh My Posh.
Сейчас в рекомендуемом пути настройки командной строки WSL с помощью Oh My Posh для установки используется менеджер пакетов Homebrew. (Homebrew уже работает с WSL!) При установке Homebrew для Linux обязательно выполните инструкции из раздела Next steps (Дальнейшие действия), чтобы добавить Homebrew в используемый путь (PATH) и в скрипт профиля оболочки Bash.
- oh-my-posh — исполняемый файл, который будет добавлен в каталог /usr/local/bin;
- themes — последние темы Oh My Posh.
Выбор и применение темы командной строки WSL
Темы Oh My Posh находятся в каталоге oh-my-posh в виде файлов JSON. Чтобы найти их, введите команду cd $(brew —prefix oh-my-posh) , затем просто cd themes , а затем — ls для построения списка. Для ОС Ubuntu 20.04, работающей через WSL, путь будет выглядеть примерно так: \\wsl.localhost\Ubuntu-20.04\home\linuxbrew\.linuxbrew\Cellar\oh-my-posh\6.34.1\themes . Вы также можете просмотреть темы в документации по Oh My Posh.
Чтобы использовать тему, скопируйте ее из папки themes в папку $Home , а затем добавьте в конец файла .profile , находящегося в папке $Home , следующую строку:
eval "$(oh-my-posh init bash --config ~/jandedobbeleer.omp.json)"
jandedobbeleer.omp.json можно заменить именем любой выбранной темы, если она скопирована в папку $Home .
В качестве альтернативы, если вы используете oh-my-posh и в Windows с PowerShell, и в WSL, вы можете использовать тему PowerShell также в WSL, указав ее в домашней папке пользователя Windows. В пути к файлу .profile используемого дистрибутива WSL вместо ~ укажите путь /mnt/c/Users/ , заменив своим именем пользователя Windows.
Добавление отсутствующих значков папок или файлов с помощью Terminal-Icons
Terminal-Icons — это модуль PowerShell, который добавляет значки файлов и папок, которые могут отсутствовать при отображении файлов или папок в терминале Windows, и ищет соответствующий значок на основе имени или расширения. Он пытается использовать значки хорошо известных файлов и папок, но если значок не найден, использует универсальный значок файла или папки.
Чтобы установить Terminal-Icons с помощью PowerShell, выполните следующую команду:
Install-Module -Name Terminal-Icons -Repository PSGallery
Дополнительные сведения, в том числе об использовании и командах, см. в репозитории Terminal-Icons на сайте GitHub.
Дополнительные ресурсы
- Документация по Oh My Posh
- Репозиторий Terminal-Icons
- Документация по Posh-Git. Posh-Git — это модуль PowerShell, который объединяет Git и PowerShell, предоставляя сводную информацию о состоянии Git, которая может быть отображена в командной строке PowerShell.
- Документация по PowerLine. Powerline — это подключаемый модуль строки состояния для Vim. Кроме того, он предоставляет строки состояния и командные строки для ряда других приложений, включая Zsh, Bash, tmux, IPython, Awesome, i3 и Qtile.
