[NTG-context] non-ascii chars in cmd.exe (Windows)
Pablo Rodriguez
oinos at gmx.es
Fri Nov 13 14:49:19 CET 2020
On 11/12/20 10:55 PM, Hans Hagen wrote:
> On 11/12/2020 10:39 PM, Pablo Rodriguez wrote:
>> Dear list,
>>
>> I have the following sample:
>>
>> \starttext
>> \startluacode
>> io.write(' Name? ')
>> document.name = io.read() or ''
>> \stopluacode
>> \cldcontext{document.name} is the name.
>> \stoptext
>> [...]
>> I’m using current latest (ConTeXt MkIV 2020.11.08 12:42).
>>
>> I’m not sure what I am missing or whether I have hit a bug.
>
> This has been discussed before I think. It has to do with how you
> configured your system (what encoding) and how consisteltly you take
> that into account. If you have some mixed setup, just don't use non-ascii.
Many thanks for your reply, Hans.
I use chcp 65001. I have no problem displaying UTF-8 messages and
passing arguments with UTF-8 characters.
> Anyway, in LMTX all file, commandline and systemn operations are utf 8
> and on windows get translated into wide system calls so there it should
> work ok if you use utf8.
Well, according to https://ss64.com/nt/cmd.html the console uses
UTF-16LE. Or UCS-2 (as described in
https://devblogs.microsoft.com/commandline/windows-command-line-unicode-and-utf-8-output-text-buffer/#console-built-in-a-pre-unicode-dawn).
Since console input is UTF-16LE, I guess I may need something in Lua
similar to 'regimes.translate(str, "utf16le")'.
How can I convert a string from UTF-16LE (into UTF-8)?
Many thanks for your help,
Pablo
--
http://www.ousia.tk
More information about the ntg-context
mailing list