【问题标题】:python getpass module is not taking German characters as inputpython getpass模块没有将德语字符作为输入
【发布时间】: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'

标签: python getpasswd


【解决方案1】:

我正在输入德语字符 (ö),输入以下内容:alt + 0246。 但是直接从德语键盘(美式键盘上的分号';')输入相同的字符效果很好。

但是,我仍然对上述两者之间的区别感到困惑。 也许 alt 代码字符的编码与 sys.stdin.encoding 给出的编码不同!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 2023-03-08
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 2020-11-21
    相关资源
    最近更新 更多