GitHub无法识别文件编码变更,如何让Git检测到编码差异?
解决Git识别cp-1252编码文件差异的问题
你的问题核心是Git解析文件编码的逻辑没配置对,之前的textconv配置不仅方向搞反,还存在语法错误,下面是具体解决步骤:
修正Git的diff编码转换配置
你之前的配置把编码转换方向搞反了——文件实际是cp-1252编码,Git默认用UTF-8解析,所以需要把cp-1252转成UTF-8给Git显示,而不是反过来。同时你的配置少了闭合引号,导致不生效。
打开本地的.gitconfig文件(或者项目根目录的.git/config),添加正确配置:[diff "win1252"] textconv = iconv -f windows-1252 -t utf-8指定文件使用该diff规则
在项目根目录新建或编辑.gitattributes文件,添加规则告诉Git哪些类型的文件用win1252的diff配置(根据你的实际文件类型调整,比如Java文件就写*.java):*.java diff=win1252确认本地文件的实际编码
有时候Eclipse显示正常,但文件实际编码可能没彻底改成cp-1252,你可以用工具验证:- Linux/macOS:执行
file -i 你的文件名,查看输出里的charset是否为windows-1252 - Windows:用Notepad++打开文件,查看右下角显示的编码是否为
ANSI(Windows-1252)
- Linux/macOS:执行
重新提交修正后的文件
确保文件确实是cp-1252编码且重音字符修正完毕后,重新执行git add和git commit,这时候Git就能正确识别编码差异,显示正常的字符了。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

