Skip to content

Commit 437feb0

Browse files
kbleesdscho
authored andcommitted
gettext: always use UTF-8 on native Windows
Git on native Windows exclusively uses UTF-8 for console output (both with mintty and native console windows). Gettext uses setlocale() to determine the output encoding for translated text, however, MSVCRT's setlocale() doesn't support UTF-8. As a result, translated text is encoded in system encoding (GetAPC()), and non-ASCII chars are mangled in console output. Use gettext's bind_textdomain_codeset() to force the encoding to UTF-8 on native Windows. In this developers' setup, HAVE_LIBCHARSET_H is apparently defined, but we *really* want to override the locale_charset() here. Signed-off-by: Karsten Blees <[email protected]>
1 parent 6c94d94 commit 437feb0

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

gettext.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
#ifndef NO_GETTEXT
1212
# include <locale.h>
1313
# include <libintl.h>
14-
# ifdef HAVE_LIBCHARSET_H
14+
# ifdef GIT_WINDOWS_NATIVE
15+
# define locale_charset() "UTF-8"
16+
# elif defined HAVE_LIBCHARSET_H
1517
# include <libcharset.h>
1618
# else
1719
# include <langinfo.h>

0 commit comments

Comments
 (0)