Message323980
| Author |
vstinner |
| Recipients |
vstinner |
| Date |
2018年08月23日.23:44:09 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1535067849.47.0.56676864532.issue34485@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Currently, the code to select the encoding and error handler of sys.stdin, sys.stdout and sys.stderr is run later in Py_Initialize(). I propose to move most of this code into _PyCoreConfig_Read() and add stdio_encoding and stdio_errors to _PyCoreConfig to easily let Python embedders to select the encoding.
Attached PR implements this idea. During Py_Initialize(), the code still reads the LC_CTYPE locale to choose the error handler if stdio_errors is NULL. This check cannot be done earlier, since the LC_CTYPE locale is only set to the user locale in Py_Initialize(): after _PyCoreConfig_Read().
The Py_SetStandardStreamEncoding() function has been added by Nick Coghlan in bpo-16129.
This new pre-initialization API allows embedding
applications like Blender to force a particular
encoding and error handler for the standard IO streams. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2018年08月23日 23:44:09 | vstinner | set | recipients:
+ vstinner |
| 2018年08月23日 23:44:09 | vstinner | set | messageid: <1535067849.47.0.56676864532.issue34485@psf.upfronthosting.co.za> |
| 2018年08月23日 23:44:09 | vstinner | link | issue34485 messages |
| 2018年08月23日 23:44:09 | vstinner | create |
|