git - utf 16无法让git对iconv和 utf 16发挥很好的作用

  显示原文与译文双语对照的内容
142 1

我试图使git识别 UTF-16 作为文本,使我能够在本机上进行差异和修补,但是我有困难。

我可以手动呼叫


iconv -f utf-16 -t utf-8 some-utf-16-file.rc



如果我按如下方式配置 gitconfig ,一切都正常


[diff"utf16"]


 textconv ="iconv -f utf-16le -t utf-8"



还有我的。gitattributes:


# Custom for MFC


*.rc text eol=crlf diff=utf16



但是,如果我运行 git diff,则会显示以下内容:


iconv: C:/Users/Mahmoud/AppData/Local/Temp/IjLBZ8_OemKey.rc:104:1: incomplete character or shift sequence



使用 procmon,我可以在创建这里过程时跟踪它:


sh -c"iconv.exe -f utf-16le -t utf-8 "$@"""iconv.exe -f utf-16le -t utf-8" C:/Users/Mahmoud/AppData/Local/Temp/JLOkVa_OemKey.rc



。我可以真正地运行( 在实际文件中,尽管) 。

有什么想法吗?

( 请注意,我意识到了让git使用UTF-16的各种解决方案。 我特别试图解决这个问题,这个问题是为什么它本身工作,但它不会在git调用时工作。 同样,这个错误最初是在尝试从"重复"问题中尝试一个链接的解决方案时遇到的。 谢谢大家。

时间: 原作者:

121 5

仅使用 diff,它应该工作:

 
*.rc diff=utf16



 

在将数据传递到iconv之前,texteol 导致git替换 end-of-lines,然后再将它的传递给 sql iconv,如注释中所示。

原作者:
...