Представьте, что у меня есть следующий код:
# -*- coding: utf-8 -*-
from getpass import getpass
#print u'Введите пароль!'.encode('cp866')
passwd = getpass (u'Введите пароль!'.encode('cp866'))
Это для того, чтобы попросить пользователя ввести свой пароль в консоли Windows (таким образом, кодировка 'cp866'). Пользователь видит следующее приглашение: "??? ¤? A?? AR? I!"
Но если вы раскомментируете строку с печатью, вы увидите правильный текст.
У меня уже есть обходной путь, сначала сделайте инструкцию print, затем введите getpass с пустым приглашением, но я просто хочу знать, что именно не так с моим кодом и почему я получаю этот результат?
Один совет, если это прояснит ситуацию: getpass использует msvcrt.putch (char) для размещения символов на консоли.