On 2/10/21, M.-A. Lemburg <[email protected]> wrote:
>
> setx PYTHONUTF8 1
>
> does the trick in an admin command shell on Windows globally.

The above command sets the variable only for the current user, which
I'd recommend anyway. It does not require administrator access. To set
a machine value, run `setx /M PYTHONUTF8 1`, which of course requires
administrator access. Also, run `set PYTHONUTF8=1` in CMD or
`$env:PYTHONUTF8=1` in PowerShell to set the variable in the current
shell.

Unrelated to UTF-8 mode and long-term plans to make UTF-8 the
preferred encoding, what I want, from the perspective of writing
applications and scripts (not libraries), is a -X option and/or
environment variable to make local._get_locale_encoding() behave like
it does in POSIX. It should return the LC_CTYPE codeset of the current
locale, not just the default locale. This would allow setlocale() in
Windows to change the default for encoding=None, just as it does in
POSIX. Technically it's not hard to implement in a way that's as
reliable as nl_langinfo(CODESET) in POSIX. The code page of the
current CRT locale is a public field. In Windows 10 the CRT has
supported UTF-8 for 3 years -- regardless of the process active code
page returned by GetACP(). Just call setlocale(LC_CTYPE, ".UTF-8") or
setlocale(LC_CTYPE, (getdefaultlocale()[0], 'UTF-8')).
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/KCCRN4T4TLOUH6GYQ3JDIPFZUUDA4QQA/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to