Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
reload(sys)
sys.setdefaultencoding('utf-8') __repr__ = lambda self: unicode(self).encode("utf-8")?unicode(self).encode(get_whatever_console_encoding()) для кросплатформизма.PyObject *
_PySys_Init(void)
{
//...
sysin = PyFile_FromFile(stdin, "", "r", NULL);
sysout = PyFile_FromFile(stdout, "", "w", _check_and_flush);
syserr = PyFile_FromFile(stderr, "", "w", _check_and_flush);
//...
}
А вы что нашли?
Эти функции корректно работают с Юникодом. Кодовая страница не имеет никакого значения (хотя на терминале охвата шрифтов не хватит для всего Юникода). Попробуйте, скажем:
import ctypes
ctypes.windll.msvcrt._putwch(1093)
Ну хорошо, это файл. Только к чему вы это сказали? Проверить, что это на самом деле, во время выполнения - не так сложно.
Как я боролся с кодировками в консоли