2016-08-18 3 views
1

Я пытаюсь ввести пароль, имеющие немецкие символы с помощью питона GetPass модуль на версии для Windows 7. Python является 2.7.8питон не принимает немецкие символы в качестве входных данных

  • Сначала я установить системную локаль как немецкий (Германия) и перезагрузиться.
  • Кодировка командной строки теперь установлена ​​на cp850, которая поддерживает немецкие символы.
  • Затем я выполняю GetPass в командной строке следующим образом:

    PWD = getpass.getpass()

    Password: 
    

    печати PWD

  • Я имел вход ö в качестве пароля и печать не дает мне ничего. Это подтверждается печатью длину пароля, который является 0.

То же самое работает с китайскими, японскими и корейскими символами, когда я установить соответствующий языковой стандарт.

У меня то же самое с python 2.3.5, и такая же проблема сохраняется.

Пожалуйста, дайте мне знать, если я делаю что-то неправильно?

+0

Вы можете назначить переменную s как 's =" ö "'? –

+0

да могу. Печать переменной дает правильный результат –

+0

интересно, можете ли вы попробовать следующее из командной строки? Они могут быть полезны для отладки этой проблемы. 'sys.getdefaultencoding()' 'sys.stdin.encoding' ' sys.stdout.encoding' –

ответ

0

Я ввел немецкий символ (ö), набрав следующую команду: alt + 0246. Но написание того же символа непосредственно с немецкой клавиатуры (с запятой, клавишей на американской клавиатуре) работает нормально.

Однако, все же я смущен относительно того, в чем разница между двумя выше. Может быть, символы кода в кодировке отличаются от того, что дается sys.stdin.encoding !!!

Смежные вопросы