[NTG-context] non-ascii chars in cmd.exe (Windows)

Pablo Rodriguez oinos at gmx.es
Fri Nov 13 21:01:59 CET 2020

On 11/13/20 3:15 PM, Hans Hagen wrote:
> On 11/13/2020 2:49 PM, Pablo Rodriguez wrote:
>> [...]
>> Since console input is UTF-16LE, I guess I may need something in Lua
>> similar to 'regimes.translate(str, "utf16le")'.
> the console uses whatever code page you have configured and it also
> relates to the code page used for filenames .. the 16 bit values are
> used deep down and what you use gets translated into that (often folks
> still use some 8 bit code page so that then gets mapped) .. there is no
> way the system can know if what you provide is as it's bytes in whatever
> encoding used
> so, you need to look what your system is configured for

I think that codepage is named locale codepage (as different from the
one in the console [or whatever chcp should change]).

I wonder whether this is named codeset in this Windows tool:

  > wmic os get locale, oslanguage, codeset
  CodeSet  Locale  OSLanguage
  1252     0c0a    3082

> (this is independent of the output to the console which is what the
> 65001 does)

It seems that UTF-8 as locale codepage is only available in Win10.

An easy workaround is to rewrite the batch file to:

 chcp 65001
 set /P "name=Name? "
 context --arguments="name={%name%}" document.tex

Many thanks for your help,


More information about the ntg-context mailing list