diff --git a/src/McRFPy_API.cpp b/src/McRFPy_API.cpp index a1ed25f..2b0c11b 100644 --- a/src/McRFPy_API.cpp +++ b/src/McRFPy_API.cpp @@ -140,6 +140,11 @@ PyStatus init_python(const char *program_name) PyConfig config; PyConfig_InitIsolatedConfig(&config); config.dev_mode = 0; + + // Configure UTF-8 for stdio + PyConfig_SetString(&config, &config.stdio_encoding, L"UTF-8"); + PyConfig_SetString(&config, &config.stdio_errors, L"surrogateescape"); + config.configure_c_stdio = 1; PyConfig_SetBytesString(&config, &config.home, narrow_string(executable_path() + L"/lib/Python").c_str()); @@ -187,6 +192,11 @@ PyStatus McRFPy_API::init_python_with_config(const McRogueFaceConfig& config, in PyConfig pyconfig; PyConfig_InitIsolatedConfig(&pyconfig); + // Configure UTF-8 for stdio + PyConfig_SetString(&pyconfig, &pyconfig.stdio_encoding, L"UTF-8"); + PyConfig_SetString(&pyconfig, &pyconfig.stdio_errors, L"surrogateescape"); + pyconfig.configure_c_stdio = 1; + // CRITICAL: Pass actual command line arguments to Python status = PyConfig_SetBytesArgv(&pyconfig, argc, argv); if (PyStatus_Exception(status)) {