`
samwong
  • 浏览: 281075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Windows下Git-preview中文乱码的解决方法

 
阅读更多

在Windows下安装Git-preview-1.7.4后,使用中发现许多的乱码问题,感觉甚是不便。这是
因为Git是在linux下开发的管理软件,而linux的编码方式是基于UTF-8的,所以移植到Wind
ows之后难免会存在编码方式不同的情况,所以极易产生乱码。即便如此,也是有解决方案的
,方法如下:(以下假设Git-preview的安装路径为D:\Git)

1.在Git Bash提示符下,使用git add添加含有中文的新文件时乱码(乱码类似:\316\304
\261\276\316\304\265\265.txt)。

解决方案: 编辑D:\Git\etc\inputrc文件中对应的行: 查找以下2行,并修改其值:

原先:

set output-meta off

set convert-meta on

改为:

set output-meta on

set convert-meta off

作用:使得在 Git Bash 中可以正常输入中文,比如中文的 commit log。

2.在Git Bash提示符下,使用git log查看含有中文的log信息时乱码(乱码类似:<E4><BF>
<AE><E6><94><B9><E6><96><87><E6><9C><AC><E6><96><87><E6><A1><A3>)。

解决方案: 在Bash提示符下输入:

git config --global i18n.commitencoding utf-8

git config --global i18n.logoutputencoding gbk

注:设置commit提交时使用utf-8编码,可避免Linux服务器上乱码;同时设置在执行git lo
g时将utf-8编码转换成gbk编码,以解决乱码问题。

编辑D:\Git\etc\profile文件,添加如下一行:

export LESSCHARSET= utf-8

注:以使git log可以正常显示中文(需要配合:i18n.logoutputencoding gbk)。

作用:$ git log命令不像其它vcs一样,n条log从头滚到底,它会恰当地停在第一页,按space键再往后翻页。这是通过将log送给less处理实现的。以上即是设置less的字符编码,使得$ git log可以正常显示中文。其实,它的值不一定要设置为 utf-8,比如latin1也可以……。还有个办法是$ git --no-pager log,在选项里禁止分页,则无需设置上面的选项。

3.在Git Bash提示符下,使用ls命令查看含有中文的文件名乱码(乱码类似:????.txt)。

解决方案: 使用ls --show-control-chars命令来强制使用控制台字符编码显示文件名,即
可查看中文文件名。

为了方便使用,可以编辑D:\Git\etc\git-completion.bash文件,添加如下一行: alias l
s="ls --show-control-chars"

4.在Git Gui中查看UTF-8编码的文本文件时乱码(乱码类似:锘夸腑鏂囨枃妗£)。

解决方案: 在Bash提示符下输入:

git config --global gui.encoding utf-8

注:通过上述设置,UTF-8编码的文本文件可以正常查看,但是GBK编码的文件将会乱码,所
以还是没有从根本上解决问题。

可行的方法之一为:将所有文本文件的编码统一为UTF-8或GBK,然后设置相应的gui.encodi
ng参数为utf-8或gbk。

在C:\Git\etc\gitconfig文件中修改或添加如下配置:
[core]
quotepath = false

作用:没有这一条,$git status输出中文会显示为UNICODE编码。

注:1、不管是在Windows还是在Linux下,请使用utf-8进行编码,而不是GBK或者其他。

在Eclipse下的编码设置请参考: 《Eclipse中设置编码的方式

2、在进行版本管理时,尽量使用TortoiseGit和Git GUI,而不建议使用Git Bash。

3、以上只是临时解决方案。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics