summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/whatsnew/3.13.rst4
-rw-r--r--Programs/_testembed.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst
index a65a98b..84ffd84 100644
--- a/Doc/whatsnew/3.13.rst
+++ b/Doc/whatsnew/3.13.rst
@@ -941,7 +941,9 @@ Removed
* ``Py_SetPath()``: set :c:member:`PyConfig.module_search_paths` instead.
* ``Py_SetProgramName()``: set :c:member:`PyConfig.program_name` instead.
* ``Py_SetPythonHome()``: set :c:member:`PyConfig.home` instead.
- * ``Py_SetStandardStreamEncoding()``: set :c:member:`PyConfig.stdio_encoding` instead.
+ * ``Py_SetStandardStreamEncoding()``: set :c:member:`PyConfig.stdio_encoding`
+ instead, and set also maybe :c:member:`PyConfig.legacy_windows_stdio` (on
+ Windows).
* ``_Py_SetProgramFullPath()``: set :c:member:`PyConfig.executable` instead.
Use the new :c:type:`PyConfig` API of the :ref:`Python Initialization
diff --git a/Programs/_testembed.c b/Programs/_testembed.c
index 351cdc3..7ee64b2 100644
--- a/Programs/_testembed.c
+++ b/Programs/_testembed.c
@@ -237,6 +237,11 @@ static void check_stdio_details(const wchar_t *encoding, const wchar_t *errors)
if (errors) {
config_set_string(&config, &config.stdio_errors, errors);
}
+#ifdef MS_WINDOWS
+ // gh-106659: On Windows, don't use _io._WindowsConsoleIO which always
+ // announce UTF-8 for sys.stdin.encoding.
+ config.legacy_windows_stdio = 1;
+#endif
config_set_program_name(&config);
init_from_config_clear(&config);