fix/workaround [#31555] Username with special chars in Windows 7

Theres a bug where python/windows ignores PYTHONIOENCODING, workaround this by manually overriding the stdout/stderr.
This commit is contained in:
Campbell Barton 2012-09-05 09:33:15 +00:00
parent 7efe2153b2
commit e2eea6c38d

@ -254,6 +254,15 @@ void BPY_python_start(int argc, const char **argv)
Py_Initialize();
#ifdef WIN32
/* this is disappointing, its likely a bug in python?
* for some reason 'PYTHONIOENCODING' is ignored in windows
* see: [#31555] for details. */
PyRun_SimpleString("import sys, io\n"
"sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='surrogateescape', line_buffering=True)\n"
"sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='surrogateescape', line_buffering=True)\n");
#endif /* WIN32 */
// PySys_SetArgv(argc, argv); // broken in py3, not a huge deal
/* sigh, why do python guys not have a (char **) version anymore? */
{