git ls-files avoids umlauts or unicode surrogate characters.
The problem is that git ls-files outputs:
$ git ls-files | grep Der "Der B\303\244cker/L\303\266ffler.txt" DerBaecker/Loeffler.txt
instead of "Der Bäcker\Löffler.txt".
It uses quotes and unicode escape sequences to avoid the ä and ö.
This patch uses git ls-files -z for listing the contents. Instead
of \r\n, the file listing the dumps a bytearray that is \0 separated
for each entry.
In the -z mode, no unicode escaping is done, and the umlauts such
as äöü or any other unicode characters are displayed correctly.
There is still room for improvement, since readAllStandardOutput()
might return a very large listing, which allocates a lot of memory.
Therefore, a buffered solution (using a lambda or so) would probably
be better. This, however, can be done in a separate patch.
BUG: 389415