
如果您在 Windows 环境下使用 Git Bash 或命令行执行 git status、git log 或 ls 时,中文文件名显示为问号、八进制转义序列(如 \346\265\213\350\257\225.txt)或乱码,则说明 Git 及其终端环境未正确配置 UTF-8 编码支持。以下是多种独立有效的解决方法:
一、禁用文件路径转义并启用 UTF-8 输出编码
该方法通过修改 Git 全局配置,使 Git 停止对中文路径进行八进制转义,并强制 commit 和 log 输出使用 UTF-8 编码,从而直接显示原始中文文件名与日志内容。
1、以管理员权限打开 Git Bash,依次执行以下四条命令:
2、git config –global core.quotepath false
3、git config –global gui.encoding utf-8
4、git config –global i18n.commitencoding utf-8
5、git config –global i18n.logoutputencoding utf-8
二、修复 Git Bash 终端输入与显示层编码
Git Bash 默认使用本地编码(GB2312),导致中文输入不可见、ls 列出中文文件名显示为问号、git log 分页时中文异常。需同步修改底层终端行为配置文件。
1、用文本编辑器(如 Notepad++ 或 VS Code)以管理员身份打开文件:C:\Program Files\Git\etc\inputrc
2、查找并修改以下两行(若不存在则添加):
3、set output-meta on
4、set convert-meta off
5、保存后关闭所有 Git Bash 窗口,重新启动生效。
三、配置 ls 命令支持中文文件名显示
Git Bash 中原生 ls 命令默认不识别控制字符,导致中文文件名渲染为乱码或问号。通过设置别名启用控制字符显式解析,可立即改善目录列表显示效果。
1、用文本编辑器以管理员身份打开文件:C:\Program Files\Git\etc\git-completion.bash
2、在文件末尾新增一行:
3、alias ls=’ls –show-control-chars –color=auto’
4、保存后重启 Git Bash,执行 ls 即可正常显示中文文件名。
四、修复 git log 分页器中文乱码
Git 默认使用 less 作为分页器,而 less 在 Windows 下默认不启用 UTF-8 字符集,导致 git log 中文提交信息显示为方块或乱码。需显式声明字符集环境变量。
1、用文本编辑器以管理员身份打开文件:C:\Program Files\Git\etc\profile
2、在文件末尾新增一行(注意等号前后不能有空格):
3、export LESSCHARSET=utf-8
4、保存后重启 Git Bash,执行 git log 即可正确渲染中文提交信息。
五、手动验证并强制终端使用 UTF-8 模式
即使完成上述配置,部分旧版 Git Bash 或系统 locale 设置仍可能回退至 GBK/GB2312。此方法通过运行时指令强制切换当前会话编码,适用于临时调试或快速验证。
1、在已打开的 Git Bash 窗口中,输入以下命令:
2、chcp 65001
3、该命令将当前控制台代码页切换为 UTF-8(65001 是 Windows 的 UTF-8 代码页编号)。
4、随后执行 git status 或 ls,观察中文文件名是否立即恢复正常显示。

评论(0)