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.)