Разница между PYTHONIOENCODING и PYTHONUTF8 заключается в их назначении:
- PYTHONIOENCODING. 1 Если установлена до запуска интерпретатора, то переопределяет кодировку, используемую в stdin/stdout/stderr. 1
- PYTHONUTF8. 14 Если установлено значение 1, включает режим интерпретатора UTF-8, где UTF-8 используется в качестве кодировки текста для системных интерфейсов, независимо от текущей настройки локали. 1 Если установлено значение 0, интерпретатор работает в режиме с учётом локали по умолчанию. 1
Таким образом, PYTHONIOENCODING устанавливает конкретные настройки кодировки для стандартных потоков, а PYTHONUTF8 включает режим UTF-8 для системных интерфейсов в целом. 14