git中文乱码分路径和提交信息两类:路径乱码(如\344\273\243)由core.quotepath=true导致,执行git config --global core.quotepath false即可;提交信息乱码(如\u4f60\u597d)需配置i18n.commitencoding=utf-8与i18n.logoutputencoding=utf-8,并确保终端编码为utf-8。

VSCode里Git乱码显示(比如文件名变成 \344\273\243\347\256\241 或提交日志出现 \u4f60\u597d)不是文件内容编码错了,而是 Git 自身在 Windows 下默认禁用 UTF-8 路径和提交信息支持——它把中文路径/消息转义成八进制或 Unicode 码点后,VSCode 只是照着显示出来。
Git 中文路径显示为 \344\273\243\347\256\241 怎么修复
这是 Git 的 core.quotepath 开启导致的:Git 检测到终端或系统未声明 UTF-8 支持时,会自动对非 ASCII 路径做八进制转义,防止损坏。VSCode 的源代码管理面板、GitLens、甚至终端里 git status 都会原样呈现这个转义串。
- 在任意终端(CMD/PowerShell/Git Bash)运行:
git config --global core.quotepath false - 这会让 Git 停止转义,直接输出原始字节;VSCode 读取后若终端本身支持 UTF-8,就能正常渲染
- 如果仍显示方块或问号,说明终端层没配好(见下一条),不是 Git 的问题
- 该配置只影响路径显示,不影响文件内容编码;
git diff里中文内容乱码要另查files.encoding
git log 或提交信息显示 \u4f60\u597d 怎么解决
这是 Git 把 commit message 当作 ASCII 处理的结果,常见于旧版 Git 或未启用国际化配置的环境。它发生在 Git 写入日志时,与 VSCode 无关,但 VSCode 的 Git 面板会直接展示这些转义字符。
- 运行:
git config --global i18n.commitencoding utf-8(告诉 Git 提交时用 UTF-8 编码 message) - 再运行:
git config --global i18n.logoutputencoding utf-8(告诉 Git 读取日志时按 UTF-8 解码) - 注意:这两个配置仅对新提交生效;历史提交的
\u转义无法自动还原,需手动重写(不推荐) - 如果项目已存在大量乱码提交,建议统一用
git log --encoding=utf-8临时查看,避免改错配置引发更多兼容问题
为什么关了 core.quotepath 还是乱码?检查终端是否真支持 UTF-8
VSCode 的 Git 面板底层调用的是集成终端里的 Git 命令,如果终端自身不能正确收发 UTF-8 字节,即使 Git 配置全开,也会显示异常。
- 先确认你当前用的是哪个 shell:VSCode 设置中搜
terminal.integrated.defaultProfile.windows,值应为powershell或git-bash(别用cmd) - PowerShell:新开终端后运行
chcp,输出必须是65001;如果不是,加"terminal.integrated.env.windows": {"PYTHONIOENCODING": "utf-8"}不起作用,得在$PROFILE里写chcp 65001 > $null - Git Bash:运行
locale,输出中LANG和LC_ALL必须含UTF-8;否则在 settings.json 加"terminal.integrated.env.windows": {"LANG": "zh_CN.UTF-8", "LC_ALL": "zh_CN.UTF-8"} - 所有终端配置修改后,必须关闭全部已打开的终端窗口,再按
Ctrl + Shift + `新开——旧终端不会刷新环境
真正容易被忽略的是:Git 的路径乱码和提交信息乱码是两个独立开关,core.quotepath 控路径,i18n.*encoding 控 message,混着配或只配一个都会留坑。而且它们和 VSCode 的 files.encoding 完全无关——改编辑器设置对 Git 命令行输出零影响。











