背景
中文乱码的根源在于 Windows 基于一些历史原因无法全面支持 UTF-8 编码格式,并且也无法通过有效手段令其全面支持,对于中文,Windows系统默认使用GB2312编码进行处理,而Git默认使用UTF-8。
而对于在Windows下喜欢用命令行的朋友,Git Bash是一款不可多得的好工具:安装简单、操作简单、集成部分实用Linux Shell工具。但Git Bash在Windows下中文会乱码的问题的确着实令人头痛。
解决
Git-Gui 右键设置编码

修改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 即可解决该问题!
- 设置
Git Bash环境变量-修改文件$GIT_INSTALL_DIR/etc/profile
Git安装目录下的/etc目录是个非常值得研究的目录,很多配置文件都放在其中!
# 在文件最后追加
export LESSCHARSET=utf-8
关闭Git Bash重新打开,输入echo $LESSCHARSET,如果输出utf-8证明设置成功!此时输入git log可以看到中文乱码问题已得到解决!

- 设置
Windows系统常量-解决PowerShell或CMD等命令行工具输出git log中文乱码
Windows键+R打开运行,输入sysdm.cpl打开系统属性,选中“高级”这个Tab,点击“环境变量”。新建系统变量

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

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,
}


