Okay, I experimented a bit and found out that Windows Git commands actually need UNIX variables like LC_ALL
in order to display Polish (or other UTF-8 characters) correctly. Just try this command:
set LC_ALL=C.UTF-8
Then enjoy the result. Here is what happened on my console (font "Consolas", no chcp
necessary):
Update:
- Well, in order for Windows commands like
type
(display file on console) to work correctly, you do need chcp 65001
.
- And if you prefer commands from Git Bash like
cat
you profit from the aforementioned set LC_ALL=C.UTF-8
.
Update 2: How to make the changes permanent
As user mono blaine said, create an environment variable LC_ALL
and assign it the value C.UTF-8
, either globally or for your own user profile only (sorry for the German screenshot):
Next time you open a command processor console (cmd.exe) you should see the variable value when issuing the command echo %LC_ALL%
. In PowerShell you should see it when issuing $env:LC_ALL
.
The simplest way to make the UTF-8 code page permanent ist to open regeedit
and add a new value named Autorun
of type string to section
HKEY_LOCAL_MACHINESOFTWAREMicrosoftCommand Processor
and assign it the value chcp 65001
.
Henceforth, this command will be executed each time you open a new cmd.exe console. You even see its output in the new window: "Aktive Codepage: 65001." (or similar in your respective language).
Oh, by the way: In order to display a UTF-8 encoded file correctly in PowerShell you can use Get-Content -encoding UTF8 file.txt
or cat -encoding UTF8 file.txt
(cat
being an alias for Get-Content
in PowerShell).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…