Kann git nicht dazu bringen, nett mit iconv und utf-16 zu spielen

Ich versuche, git dazu zu bringen, UTF-16 als Text zu erkennen, damit ich diff und patch als Text nativ verwenden kann, aber ich habe Probleme, das @ zu bekommetextconv Parameter zu arbeiten.

Ich kann @ manuell anruf

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

und alles ist in Ordnung. Aber wenn ich meine .gitconfig wie folgt konfiguriere:

[diff "utf16"]
    textconv = "iconv -f utf-16le -t utf-8"

und meine .gitattributes:

# Custom for MFC
*.rc text eol=crlf diff=utf16

Aber wenn ich dann wenn ich laufegit diff wird Folgendes angezeigt:

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

Mit procmon konnte ich feststellen, dass dieser Prozess erstellt wurde:

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

... was ich eigentlich gut laufen lassen kann (auf der eigentlichen Datei allerdings).

Irgendwelche Ideen

(Bitte beachten Sie, dass ich die verschiedenen Lösungen kenne, um git für UTF-16 zum Laufen zu bringen. Ich versuche speziell, diese Frage zu beantworten, warum iconv von selbst funktioniert, aber es wird nicht funktionieren, wenn es von git aufgerufen wird. Dieser Fehler ist ursprünglich aufgetreten, als Sie eine der verknüpften Lösungen aus der "doppelten" Frage ausprobiert haben. Vielen Dank.)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage