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调用时工作。同样,这个错误最初是在尝试从"重复"问题中尝试一个链接的解决方案时遇到的。谢谢大家。

时间:原作者:0个回答

121 5

仅使用 diff,它应该工作:

*.rc diff=utf16

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

原作者:
...