解决 Git Bash 在 windows 下中文乱码的问题

背景

中文乱码的根源在于 Windows 基于一些历史原因无法全面支持 UTF-8 编码格式,并且也无法通过有效手段令其全面支持,对于中文,Windows系统默认使用GB2312编码进行处理,而Git默认使用UTF-8

而对于在Windows下喜欢用命令行的朋友,Git Bash是一款不可多得的好工具:安装简单、操作简单、集成部分实用Linux Shell工具。但Git BashWindows下中文会乱码的问题的确着实令人头痛。

解决

Git-Gui 右键设置编码

git-gui-set-utf8.png

修改gitconfig

进入Git安装目录,打开git-bash.exe程序,依次输入下列命令:

$ git config --global core.quotepath false          # 设置显示 status 编码
$ git config --global gui.encoding utf-8            # 设置图形界面编码
$ git config --global i18n.commit.encoding utf-8    # 设置提交信息编码
$ git config --global i18n.logoutputencoding utf-8  # 设置输出 log 编码

修改环境变量

Git命令在输出log信息时使用的是less这个工具,默认和Windows中的编码格式不兼容,因此导致在使用git log时中文会乱码。

设置LESSCHARSET环境变量使用 UTF-8 即可解决该问题!

  1. 设置Git Bash环境变量-修改文件$GIT_INSTALL_DIR/etc/profile

Git安装目录下的/etc目录是个非常值得研究的目录,很多配置文件都放在其中!

# 在文件最后追加
export LESSCHARSET=utf-8

关闭Git Bash重新打开,输入echo $LESSCHARSET,如果输出utf-8证明设置成功!此时输入git log可以看到中文乱码问题已得到解决!

git-bash-show-git-log-with-chinese.png

  1. 设置Windows系统常量-解决PowerShellCMD等命令行工具输出git log中文乱码

Windows键+R打开运行,输入sysdm.cpl打开系统属性,选中“高级”这个Tab,点击“环境变量”。新建系统变量

windows-set-PATH-lesscharset.png

关闭PowerShell重新打开,输入echo $env:LESSCHARSET,如果输出utf-8证明设置成功!此时输入git log可以看到中文乱码问题已得到解决!

powershell-show-git-log-with-chinese.png

WSL 2集成Git Bash并解决其乱码问题

感谢知乎网友-喵NLI:https://zhuanlan.zhihu.com/p/166407830

但我并没有像上文中网友说的那么复杂的情况,我只做了如下修改就已经解决了WSL 2集成Git Bash的乱码问题:将commandline位置从$GIT_INSTALL_DIR\\bin\\bash.exe修改为了$GIT_INSTALL_DIR\\usr\\bin\\bash.exe --login -i

附上WSL设置的profiles文件即可

{
    // guid 可以通过网上查询 guid 生成器生成:http://tool.pfan.cn/guidgen
    "guid": "{ce7a80b8-da75-4628-a2e1-663af0f3ce7c}",
    "name": "git",
    "icon": "C:\\Self\\code\\CVS\\Git\\git-for-windows.ico",
    "commandline": "C:\\Self\\code\\CVS\\Git\\usr\\bin\\bash.exe --login -i",
    "startingDirectory":"D:\\htdocs",
    "hidden": false,
    "acrylicOpacity" : 0.8,
    "colorScheme" : "Campbell",
    "cursorColor" : "#FFFFFD",
    "fontFace" : "Fira Code",
    "useAcrylic" : true,
    "backgroundImage":"C:\\Users\\Minso\\Pictures\\Camera Roll\\goldfish.png",
    "backgroundImageOpacity":0.35,
}

转载请声明出处: MinsonLee的博客:https://minsonlee.github.io

扫描下方二维码,关注公众号,接收更多实时内容

新猿呓码

打赏一个呗

取消

感谢客官打赏,您的打赏使我动力十足!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦