Ответ 1
Хорошо, я немного экспериментировал и обнаружил, что командам Windows Git действительно нужны переменные UNIX, такие как LC_ALL
, чтобы правильно отображать польские (или другие символы UTF-8). Просто попробуйте эту команду:
set LC_ALL=C.UTF-8
Получите результат. Вот что произошло на моей консоли (шрифт "Консола", нет chcp
):
Update:
- Хорошо, для того, чтобы команды Windows, такие как
type
(отображаемый файл на консоли), работали правильно, вам нужноchcp 65001
. - И если вы предпочитаете команды из Git Bash, например
cat
, вы получаете выгоду от вышеупомянутогоset LC_ALL=C.UTF-8
.
Обновление 2: Как сделать изменения постоянными
Как сказал пользователь blaine mono, создайте переменную окружения LC_ALL
и присвойте ей значение C.UTF-8
, либо глобально, либо только для вашего собственного профиля пользователя (извините за немецкий снимок экрана):
В следующий раз, когда вы откроете консоль процессора команд (cmd.exe), вы увидите значение переменной при выдаче команды echo %LC_ALL%
. В PowerShell вы должны увидеть это при выпуске $env:LC_ALL
.
Самый простой способ сделать кодовую страницу UTF-8 постоянным и открыть regeedit
и добавить новое значение с именем Autorun
строки типа в раздел
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
и присвойте ему значение chcp 65001
.
В дальнейшем эта команда будет выполняться каждый раз при открытии новой консоли cmd.exe. Вы даже видите его выход в новом окне: "Aktive Codepage: 65001." (или аналогичный на вашем родном языке).
О, кстати: для корректного отображения кодированного файла UTF-8 в PowerShell вы можете использовать Get-Content -encoding UTF8 file.txt
или cat -encoding UTF8 file.txt
(cat
как псевдоним для Get-Content
в PowerShell).