【问题标题】:When I type non-ASCII characters using a Windows keyboard I get "?"当我使用 Windows 键盘键入非 ASCII 字符时,我得到“?”
【发布时间】:2013-04-06 23:05:00
【问题描述】:

当我使用 Windows 键盘(在语言栏中)键入 non-ASCII 字符时,我会在非 ASCII 字符所在的位置出现问号 ?

复制和粘贴工作正常,Unicode 字符显示在 Text 小部件中。

我正在使用找到hereLakota All-In-One keyboard。此特定键盘列在US 语言环境下的Windows 语言栏中。

【问题讨论】:

  • 如果我将键盘语言从 US 切换到 CANADA-FRENCH,é 的键仍然像 ?钥匙。我根本没有t know if thats 任何帮助。
  • 好问题...我输入的不是问号键。相反,我键入的任何非 ASCII 字符都会转换为问号。
  • Tkinter 已经过时了。我建议学习一个新的库来创建 GUI,一个拥有更大社区的库。
  • 为了测试,尝试将文本小部件的默认值设置为u'\u0160kte \u0161ni',它应该打印Škáte šni。我还建议尝试键入 Unicode 字符 directly 以确保键盘布局不是罪魁祸首。另见this answer
  • Crispy,我不确定你的回答是否与我的问题相关,但你现在让我很好奇。您会推荐什么 GUI 系统?我总是乐于学习新系统。

标签: python unicode tkinter keyboard


【解决方案1】:

TkInter 对特殊字符似乎不太好,尤其是在 Fedora 上。我看过几十个这样的帖子。您最好的选择可能是使用另一个 GUI 库,例如 PyFLTK(我的最爱)、GTK+ 3(我的第二个最爱)、PyQtPySidewxPythonKivy 等。

【讨论】:

  • 这不是一个真正有用的答案。它实际上是 TkInter 本身中的一个错误,它导致 Unicode 处理错误。
  • @DonalFellows:我知道这是 TkInter 中的一个错误。我说“尤其是在 Fedora 上”,因为我发现的大多数涉及 unicode 的错误都在 Fedora 上。我什至发现了一个特殊的 Fedora 专用补丁。是的,就是这么糟糕。啊!!! Python 开发人员确实需要解决这个问题...
【解决方案2】:

Tkinter 在 unicode 方面存在问题。尝试输入完整的 utf 值(即 \x80abc)我发现有时可以解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 2019-02-19
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多