Windows 10命令提示符下的git日志输出编码问题

问题描述 投票:61回答:5

问题

如何使git log命令输出正确显示在Windows命令提示符下?

示例

git commands sequence leading to the problem如您所见,我可以正确键入变音字符,但是在git log上以某种方式转义了输出。根据UTF-8 encoding table,输出中尖括号(UTF-8<)之间的代码对应于先前键入的>参数。

我尝试将git config的环境变量设置为LESSCHARSET,但在utf-8中将其设置为混淆,然后输出出现乱码:

one of the answers for similar issue

[我知道git log output after setting LESSCHARSET=utf8已正确编码为.git/config,因为它已按预期由utf-8处理。

gitk

如果需要,这里是Proper gitk output命令输出

locale

编辑:

在纯git-bash中,输出也相同:]]

LANG= LC_CTYPE="C.UTF-8" LC_NUMERIC="C.UTF-8" LC_TIME="C.UTF-8" LC_COLLATE="C.UTF-8" LC_MONETARY="C.UTF-8" LC_MESSAGES="C.UTF-8" LC_ALL=

所以我认为问题是与外壳无关的,并且与Git或其配置本身有关。

问题如何使git log命令输出正确显示在Windows命令提示符下?示例如您所见,我可以正确键入变音字符,但在git log上,输出会以某种方式...

git character-encoding locale command-prompt
5个回答
116
投票

[好的,我做了一些实验,发现Windows Git命令实际上需要UNIX变量,例如enter image description here才能正确显示波兰语(或其他UTF-8字符)。只需尝试以下命令:


41
投票

[如果有人对Get-Content的PowerShell等效项感兴趣,那就是:


5
投票

我在C.UTF-8上使用git bash。对于我来说,四个设置使外观符合我的期望。


0
投票

我必须使用Windows powershell命令提示符而不是默认的提示符(Windowkey + X)


0
投票

我在Linux上有这样的问题。问题是我没有生成语言环境。因此,我的encoding输出可以保留所有“ C”字母,而没有UTF-8。为了解决这个问题,我在/etc/locale.gen中未注释localeen_US.UTF-8。然后,我运行localectl set-locale LANG = ru_RU.UTF-8并重新启动。并重新登录到系统。之后,圆环将正常显示。

© www.soinside.com 2019 - 2024. All rights reserved.