如何在Git与PowerShell中修复目录名称的德语变音字符问题?
解决Git在Windows PowerShell中显示德语变音目录乱码的问题
问题核心
你之前修改的i18n.commitEncoding是控制提交信息的编码,和Git命令输出的文件名编码无关,因此无法解决路径转义显示的问题。本质原因是Git默认会对非ASCII路径进行转义,且Git输出编码与PowerShell控制台编码不匹配。
具体解决步骤
关闭Git的路径转义功能
Git默认会将非ASCII路径转义为类似\303\266的序列,执行以下命令关闭该行为:git config --global core.quotepath false对齐Git输出编码与PowerShell控制台编码
先查看PowerShell当前的控制台输出编码:[Console]::OutputEncoding德语系统(de-DE)下通常输出编码为
cp1252或UTF-8,根据结果执行对应命令:- 若编码为
cp1252:git config --global i18n.logOutputEncoding cp1252 - 若编码为
UTF-8:git config --global i18n.logOutputEncoding utf-8
- 若编码为
强制统一PowerShell编码(可选)
若上述步骤后仍有异常,可强制将PowerShell的输入/输出编码设为UTF-8:[Console]::OutputEncoding = [System.Text.Encoding]::UTF8 [Console]::InputEncoding = [System.Text.Encoding]::UTF8如需永久生效,可将上述两行添加到PowerShell配置文件中(执行
notepad $PROFILE打开配置文件,添加后保存重启PowerShell)。验证修复效果
重新执行git status,此时目录名“Archivierung und Löschung”应能正常显示,不再出现转义序列。
内容的提问来源于stack exchange,提问作者Sascha Manns
相关产品推荐
相关产品推荐

