On Tue, May 22, 2012 at 12:32:21AM -0400, Jeff King wrote:
I'm not too surprised this is broken (in fact, I'm surprised it ever
really worked). UTF-16, especially representing pure ascii characters,
will have embedded NULs. Most of the code assumes that things like names
and emails are NUL-terminated and ascii-compatible (so ascii, or some
ascii-superset encoding like utf8, iso8859-1, etc). You can store a
commit message (and name) in utf-16 if you tell git that you are doing
so, but we should be re-encoding it before handling it.
Actually, I take that back. I think storing in utf-16 would probably
fail. We need to use ascii to even read the headers to get to the
encoding header to realize that it is in utf-16. So I believe we really
do only support ascii-superset encodings.
-Peff