如何在git日志中显示不同的语言字符?

时间:2013-06-06 01:34:56

标签: macos ssh locale lang

以下是我现在在git日志中看到的内容:

commit d0ed97d243eaf905b03244a4d1ba6af26213e4ad
Author: some guy <someone@somesite.com>
Date:   Mon Jun 3 11:22:06 2013 +0900

<E3><83><98><E3><83><83><E3><83><80><E3><81><AE><E3><83><A6><E3><83><BC><E3><82><B6><E3><82><A2><E3><82><A4><E3><82><B3><E3><83><B3><E8><A1><A8><E7><A4><BA>
提交是由一些日文字符提交的。

我已经将我的LANG env改为ja_JP.UTF-8,en_US.UTF-8,ja_JP.eucJP:

$ export LANG=ja_JP.UTF-8

但没有任何效果。

希望有人知道并给我一些观点。 谢谢。


更新(解决方案1):

最后,我设法通过在本地环境(即MacOS)的SendEnv LANG LC_*文件中注释掉行/etc/ssh_config来显示这些日文字符。 但我认为我没有解决这个问题。我想我只是切断了将LANG的设置发送到服务器端(CentOS)的方式。所以基本上,本地环境中的LANG设置仍然搞乱,因为当我在本地环境(mac)中尝试$ locale时,它显示以下设置:

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

这显然是不合适的设置 我还在晃眼......

更新(解决方案2):

我终于找到了“语言环境”问题的解决方案,
这是我找到的链接:How to fix locale issues in Mac OSX terminal
感谢所有人的帮助。

1 个答案:

答案 0 :(得分:7)

确保您的系统正确支持UTF-8。大多数Ubuntu和Fedora盒子都可以。如果您使用的是终端或ssh会话,请确保将ssh客户端配置为始终使用UTF-8。例如,如果使用putty,请确保将其配置为在首选项中使用UTF-8编码 - 它不是默认设置。

我在这个Fedora 16盒子上有相对较旧的git版本1.7.7.6,但它似乎工作得很好,只要我正确设置我的语言环境:

$ export LANG=en_US.UTF-8
$ git log
commit 40b8cb9fc58775826a511c5338370f7fd1454481
Author: some guy <someone@somesite.com>
Date:   Wed Jun 5 22:57:10 2013 -0700

welcome
привет
ヘッダのユー

如果我将语言环境设置为日语,它仍然可以正常工作:

$ export LANG=ja_JP.UTF-8
$ git log
commit 40b8cb9fc58775826a511c5338370f7fd1454481
Author: some guy <someone@somesite.com>
Date:   Wed Jun 5 22:57:10 2013 -0700

welcome
привет
ヘッダのユー

但如果我将语言环境设置为Posix(C):

,则会中断
$ export LANG=C
$ git log
commit 40b8cb9fc58775826a511c5338370f7fd1454481
Author: some guy <someone@somesite.com>
Date:   Wed Jun 5 22:57:10 2013 -0700

welcome
<D0><BF><D1><80><D0><B8><D0><B2><D0><B5><D1><82>
<E3><83><98><E3><83><83><E3><83><80><E3><81><AE><E3><83><A6><E3><83><BC>

作为参考,这就是工作区域应该是这样的:

$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=