I did some further research, and I think I have figured this out.
It seems to me you aren't really using the system-locale to determine the output encoding, but the user-locale, or culture, i.e. the setting that governs the format of money, date and time. I'm not sure if this is a good choice, but at least I know how to get the results I need.
I guess you don't want to change this for backwards compatibility reasons, but using the real system locale would be more intuitive, and UTF-8 encoded temp files would be ideal. (The commit message file already is utf-8 encoded, so at first I assumed all others are, as well).
Can you comment on this?
thanks,
Csaba