On Fri, Nov 02, 2018 at 03:30:17AM +0100, Adrián Gimeno Balaguer wrote: > I’m attempting to perform fixups via git-rebase of UTF-16 LE files > (the project I’m working on requires that exact encoding on certain > files). When the rebase is complete, Git changes that file’s encoding > to UTF-16 BE. I have been using the newer working-tree-encoding > attribute in .gitattributes. I’m using Git for Windows. > > $ git version > git version 2.19.1.windows.1 > > Here is a sample UTF-16 LE file (with BOM and LF endings) with > following atributes in .gitattributes: > > test.txt eol=lf -text working-tree-encoding=UTF-16 > > I put eol=lf and -text to tell Git to not change the encoding of the > file on checkout, but that doesn’t even help. Asides, the newer > working-tree-encoding allows me to view human-readable diffs of that > file (in GitHub Desktop and Git Bash). Now, note that doing for > example consecutive commits to the same file does not affect the > UTF-16 LE encoding. And before I discovered this attribute, the whole > thing was even worse when squash/fixup rebasing, as Git would modify > the file with Chinese characters (when manually setting it as text via > .gitattributes). > > So, again the problem with the exposed .gitattributes line is that > after fixup rebasing, UTF-16 LE files encoding change to UTF-16 BE. > > For long, I have been working with the involved UTF-16 LE files set as > binary via .gitattributes (e.g. “test.txt binary”), so that Git would > not modify the file encoding, but this doesn’t allow me to view the > diffs upon changes in GitHub Desktop, which I want (and neither via > git diff). Thanks for the report. I have tried to follow the problem from your verbal descriptions (and the PR) but I need to admit that I don't fully understand the problem (yet). Could you try to create some instructions how to reproduce it? A numer of shell istructions would be great, in best case some kind of "test case", like the tests in the t/ directory in Git. It would be nice to be able to re-produce it. And if there is a bug, to get it fixed.