Git在Windows下将中文路径转为\344\270\255等八进制序列,是因默认使用GBK等旧代码页而非UTF-8解析路径字节,导致UTF-8编码的中文被错误解释为latin-1字符并触发core.quotepath转义机制。

VSCode里中文路径显示成\344\270\255\346\226\207这类八进制序列,不是VSCode的错,是Git在Windows下默认禁用UTF-8路径支持导致的。
为什么Git在Windows里会把中文路径转成\344\270\255这种格式
Git for Windows默认使用旧式MS-DOS代码页(如GBK),不启用UTF-8路径编码。当它读取含中文的文件名时,无法正确解析Unicode字节,就退化为打印原始字节的八进制转义序列——这和VSCode无关,git status、git log命令行里也一样乱。
- 这是Git底层行为,VSCode的源码管理视图只是直接展示Git命令输出结果
- 即使你把VSCode所有编码设成UTF-8,只要Git没开UTF-8路径支持,路径依然显示为转义串
- 该问题只影响路径显示,不影响文件内容读写或提交功能
启用Git UTF-8路径支持(Windows必须操作)
在Git Bash或CMD/PowerShell中执行以下命令,强制Git使用UTF-8处理路径:
git config --global core.precomposeUnicode true git config --global core.quotepath false git config --global i18n.logOutputEncoding utf8 git config --global i18n.commitEncoding utf8
最关键的是启用UTF-8文件系统接口:
- 打开Git Bash,运行:
git config --global core.filemode false - 然后执行:
git config --global core.autocrlf true - 最后一步(必需):
git config --global core.unicode true(Git 2.30+才支持;若报错则跳过,改用下面的注册表方案)
如果上述配置无效(常见于旧版Git),直接修改Windows注册表:
- 运行
regedit,定位到HKEY_LOCAL_MACHINE\SOFTWARE\GitForWindows - 新建DWORD值,名称为
EnableUTF8,值设为1 - 重启Git Bash和VSCode
VSCode里仍看到乱码?检查Git可执行文件路径
VSCode可能用了自带的Git副本,而非你刚配好的系统Git。确认它调用的是哪个git.exe:
- 打开VSCode设置(
Ctrl+,),搜索git.path - 确保该值指向你安装的Git目录下的
bin\git.exe(例如C:\Program Files\Git\bin\git.exe),而不是VSCode内置的resources\app\extensions\git\dist\git.js - 如果为空,VSCode会自动找系统PATH里的git;但PATH里若有多个git(比如GitHub Desktop自带的),优先级可能出错
改完后重启VSCode,再执行Git: Show Git Output命令,看日志里git status输出是否已显示正常中文路径。
团队协作时要注意.gitattributes和.gitignore里的中文
即使路径显示正常,.gitignore里写中文目录/可能被忽略——Git对ignore规则的编码解析更脆弱:
- 务必用UTF-8无BOM格式保存
.gitignore和.gitattributes - 避免在这些文件里直接写中文路径;改用通配符或英文别名(如
zh_docs/代替中文文档/) - 提交前用
git check-ignore -v 中文文件.txt验证规则是否生效
路径乱码表面是显示问题,根子在Git与Windows字符集层的割裂;光调VSCode设置没用,必须让Git本身理解UTF-8路径,否则每次拉取、切换分支都可能触发编码降级。


















