> Date: Tue, 4 Apr 2023 12:48:14 +0200 > From: Patrice Dumas <pertu...@free.fr> > > On Tue, Apr 04, 2023 at 10:59:53AM +0100, Gavin Smith wrote: > > On Tue, Apr 04, 2023 at 09:35:07AM +0200, Arash Esbati wrote: > > > Eli Zaretskii <e...@gnu.org> writes: > > > > > > > ??? What is your console output codepage set to? > > > > > > C:\>chcp > > > Aktive Codepage: 850. > > > > The use of the codepage 850 instead of what 'locale' reports likely > > comes from these lines in texi2any.pl: > > I think that I did that for the 7 release, based on some code found on > internet, but I do not really understand what it does. > > > if (!defined($locale_encoding) and $^O eq 'MSWin32') { > > eval 'require Win32::API'; > > if (!$@) { > > Win32::API::More->Import("kernel32", "int GetACP()"); > > my $CP = GetACP(); > > if (defined($CP)) { > > $locale_encoding = 'cp'.$CP; > > } > > } > > }
It's the Windows equivalent of nl_langinfo(CODESET). But the problem is that, unlike Unix, where you have just one CODESET for an installed locale, on Windows, we can have 3 different ones: . the ANSI codepage . the console input codepage . the console output codepage Usually, the last two are identical, but different from the first. The first one is used by programs for anything except writing to the console, like encoding of file names.