Não é possível fazer com que o git seja agradável com iconv e utf-16
Estou tentando fazer com que o git reconheça o UTF-16 como texto, para que eu possa diferenciar e corrigir como texto nativamente, mas estou tendo problemas para obter otextconv
parâmetro para trabalhar.
Posso ligar manualmente
iconv -f utf-16 -t utf-8 some-utf-16-file.rc
e está tudo bem. Mas se eu configurar meu .gitconfig da seguinte maneira
[diff "utf16"]
textconv = "iconv -f utf-16le -t utf-8"
e meus .gitattributes:
# Custom for MFC
*.rc text eol=crlf diff=utf16
No entanto, se eu então, se eu corrergit diff
, o seguinte é exibido:
iconv: C:/Users/Mahmoud/AppData/Local/Temp/IjLBZ8_OemKey.rc:104:1: incomplete character or shift sequence
Com o procmon, consegui localizá-lo ao criar este processo:
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
... que eu realmente posso executar bem (no arquivo real).
Alguma ideia?
(Observe que estou ciente das várias soluções para fazer o git funcionar com o UTF-16. Estou tentando especificamente resolver essa questão de por que o iconv por si só funciona, mas não funcionará quando chamado pelo git. Foi originalmente encontrado um erro ao tentar uma das soluções vinculadas da pergunta "duplicado". Obrigado a todos.)