For many Win32 functions, there actually exist two variants: one that takes const char * ("ANSI", meaning the current code page) and wchar_t * ("Unicode", i.e. UTF-16, at least for all practical matters). These functions have "A" and "W" suffixes, respectively, e.g. GetFileAttributesW(). The symbols without this suffix are #defined to the *W() versions if the constant UNICODE is defined before including the Windows headers, and to *A() otherwise. Let's not rely on this constant, but explicitly say what we want: we want the Unicode versions, as they seem to be used by the ANSI flavor anyway. Johannes Schindelin (2): mingw: get pw_name in UTF-8 format mingw: use Unicode functions explicitly compat/mingw.c | 12 +++++++++--- compat/poll/poll.c | 2 +- compat/winansi.c | 10 ++++++---- 3 files changed, 16 insertions(+), 8 deletions(-) base-commit: aa25c82427ae70aebf3b8f970f2afd54e9a2a8c6 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-147%2Fdscho%2Fansi-unicode-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-147/dscho/ansi-unicode-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/147 -- gitgitgadget