【发布时间】:2016-12-24 23:19:29
【问题描述】:
我正在尝试在 Windows 7 上使用 python getpass 模块输入包含德语字符的密码。Python 版本是 2.7.8
- 首先我将系统区域设置为 German(Germany) 并重新启动。
- 命令提示符代码页现在设置为支持德语字符的 cp850。
-
然后我在命令提示符下执行getpass如下:
pwd = getpass.getpass()
Password:打印密码
我输入了 ö 作为密码,打印它什么也没给我。这可以通过打印密码长度 0 来确认。
当我设置相应的语言环境时,对中文、日文和韩文字符也是如此。
我对 python 2.3.5 有同样的问题,同样的问题仍然存在。
如果我做错了什么请告诉我?
【问题讨论】:
-
你能把变量s赋值为
s = "ö"吗? -
是的,我可以。打印变量也会给出正确的输出
-
很有趣,您可以从命令行尝试以下操作吗?他们可能有助于调试这个问题
sys.getdefaultencoding()sys.stdin.encodingsys.stdout.encoding -
sys.getdefaultencoding() : 'ascii', sys.stdin.encoding : 'cp850', sys.stdout.encoding : 'cp850'