git bash中文显示问题
在Windows中使用git bash遇到了中文乱码的问题,当提交中文名字的文档“Git的基本使用方法.md”并添加评论git commit -m "first note"
后,git显示中文乱码:
1 2 3 |
[master 4c7cc5d] first note 1 file changed, 6 insertions(+) create mode 100644 "Git\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250\346\226\271\346\263\225.md" |
造成乱码的几个原因主要有
- Windows默认使用GB2312来处理文件名和内容,但Git默认使用UTF-8
- Git命令在输出log的时候会使用less这个工具,默认和Windows的编码格式不兼容
- 不同的命令行工具(终端)对环境变量的处理方式不同
解决的办法是统一使用UTF-8编码。需要修改的设置有: 1. 设置 Git 支持 utf-8 编码
1 2 3 4 5 |
git config --global core.quotepath false # 不对0x80以上的字符进行quote,解决git status/commit时中文文件名乱码 git config --global i18n.commitencoding utf-8 # 提交信息编码 git config --global i18n.logoutputencoding utf-8 # 输出log编码 git config --global svn.pathnameencoding GB2312 # 支持中文路径 export LESSCHARSET=utf-8 # git log 默认使用less分页,所以需要bash对less命令进行utf-8编码 |
gui显示中文
1
git config --global gui.encoding utf-8 # 图形界面编码
针对Windows的其他命令行工具 在系统环境变量中添加LESSCHARSET变量,其值设置为utf-8,可解决windows其他命令行工具如Powershell, cmd和cmder的中文乱码问题。