git中文文件名显示\344\270\255\346\226\207等八进制转义,是因core.quotepath默认为true触发路径转义,执行git config --global core.quotepath false即可关闭;该配置仅影响路径显示,不影响文件内容编码。

Git提交后中文文件名显示\u4f60\u597d这类八进制转义
这不是VSCode的问题,是Git在Windows下默认关闭了UTF-8路径支持。它把中文文件名强制转成\344\270\255\346\226\207这种格式再交给VSCode显示,编辑器只是照搬而已。
实操建议:
- 在终端运行:
git config --global core.quotepath false(必须执行,否则所有中文路径都逃不掉转义) - 顺手加一句:
git config --global core.precomposeunicode true(macOS必需,Windows可选但建议加上) - 重启VSCode或至少重启集成终端,再看源代码管理面板里的文件列表
注意:这个配置只影响路径显示,不影响文件内容编码;如果文件内容本身是GBK,还得单独处理。
VSCode里新建文件夹/文件时输中文名直接变问号或方块
这是Windows系统层面对文件系统字符映射的限制,不是VSCode能单靠设置绕过的。VSCode调用的是Windows API创建文件,而旧版Windows默认用ANSI代码页(如CP936)处理路径,遇到未映射字符就 fallback 成?。
实操建议:
- 打开「控制面板 → 区域 → 管理 → 更改系统区域设置」
- 勾选「Beta 版:使用 Unicode UTF-8 提供全球语言支持」
- 点击确定后**必须重启电脑**,否则无效
重启后,不仅VSCode新建中文文件名正常,CMD、PowerShell、资源管理器、甚至老版本Notepad都能正确读写中文路径。
GitLens或源代码管理面板里中文名正常,但终端git status仍乱码
Git命令行工具和GUI前端(如GitLens)走的是不同路径:GitLens直连Git库元数据,而终端里git status依赖当前shell的locale和Git自身的输出编码。
实操建议:
- 先确认终端已切到UTF-8代码页:
chcp 65001(仅当前会话有效) - 永久生效:在VSCode的
settings.json中加这一行:"terminal.integrated.env.windows": {"PYTHONIOENCODING": "utf8"}(对Python项目尤其关键) - 如果用PowerShell,还需在
$PROFILE里加:[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
别漏掉一点:WSL用户完全不用动Windows这层,直接在Linux子系统里设好locale,VSCode终端会自动继承。
老项目迁移到新环境后中文路径突然变乱码
常见于从旧版Windows(如Win7/Win10早期)升级到Win11,或重装系统后没同步Git配置。新系统开了UTF-8支持,但旧Git配置还留着core.quotepath true,导致Git自己又开始转义。
检查方法:
- 在项目根目录运行:
git config --get core.quotepath,输出true就是问题所在 - 对比全局配置:
git config --global --get core.quotepath
修复优先级:
- 先清空项目级配置:
git config --unset core.quotepath(让其回落到全局) - 再确保全局是
false:git config --global core.quotepath false - 最后删掉
.git/config里残留的手动设置项,避免覆盖
最易被忽略的是:项目级配置可能藏在.git/config里,比全局配置优先级高,光改全局没用。











