You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git切换dev分支时UTF-8转UTF-16LE-BOM失败,*.rc文件损坏求解

解决Git处理UTF-16LE-BOM编码资源文件的错误问题

问题根源

你在dev分支直接将*.rc文件转为UTF-16LE-BOM并提交,同时配置了working-tree-encoding=UTF-16LE-BOM,但这个配置的逻辑是Git仓库内部存储UTF-8编码文件,检出到工作区时自动转为UTF-16LE-BOM。而你实际提交的是UTF-16编码文件,Git会错误地将其当作UTF-8处理,导致编码转换失败。

步骤1:修复当前损坏的工作区

执行命令重置工作区到正确状态,丢弃错误转换的文件:

git reset --hard HEAD
git rm --cached .gitattributes

步骤2:修正.gitattributes配置

你需要让Git识别*.rc文件本身的编码,而非强制转换编码。修改.gitattributes内容为:

**/*.rc text encoding=UTF-16LE-BOM eol=CRLF
  • encoding=UTF-16LE-BOM:告诉Git该类文件的实际编码,用于diff解析
  • eol=CRLF:确保工作区文件使用CRLF行尾

步骤3:重新提交正确的文件和配置

  1. 批量验证所有*.rc文件确实是带BOM的UTF-16LE编码、CRLF行尾(可通过Notepad++等工具确认)
  2. 暂存修改:
    git add **/*.rc .gitattributes
    
  3. 提交变更:
    git commit -m "统一*.rc为UTF-16LE-BOM编码,配置Git支持diff"
    

步骤4:验证克隆后的行为

重新克隆仓库并切换到dev分支,此时Git会正确识别*.rc的编码,不会触发错误转换,同时能正常生成diff。

内容的提问来源于stack exchange,提问作者elo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:35:16