STINNER Victor <vstin...@python.org> added the comment:

> This is based on config_init_stdio_encoding() in Python/initconfig.c, which 
> sets config->stdio_encoding via config_get_locale_encoding(). Cannot 
> config->stdio_encoding be set to NULL for default behavior?

I would like to get a PyConfig structure fully populated to make the Python 
initialization more deterministic and reliable. So PyConfig fully control used 
encodings.

The solution here is to fix config_init_stdio_encoding() to use GetConsoleCP() 
and GetConsoleOutputCP() to build a "cpXXX" string.

This issue seems to be a regression that I introduced in Python 3.8 with the 
PEP 587 (PyConfig). I didn't notice this subtle case during my refactoring. 
Relying on os.device_encoding() when the encoding is NULL is not obvious. 
That's why I prefer to get PyConfig full populated ;-)

It would be nice to get an unit test for this case.

----------
nosy: +vstinner

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue42261>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to