首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Tkinter应用程序栈中的哪个位置是问号("?")代替Unicode键盘输入到文本小部件中?

在Tkinter应用程序栈中的哪个位置是问号("?")代替Unicode键盘输入到文本小部件中?
EN

Stack Overflow用户
提问于 2013-05-20 01:32:58
回答 1查看 492关注 0票数 0

在Tkinter应用程序栈中的哪个位置是问号("?")代替Unicode键盘输入到文本小部件中?

可能的位置: Python、Tkinter、TCL/TK、Windows、Windows键盘

我在这里有一个类似的问题:When I type non-ASCII characters using a Windows keyboard I get "?"

但是这个问题的意思是“这个问题在哪里发生(在应用程序栈中)?”所以,也许它可以说明类似我之前提交的类似的问题。

我的环境是:

  • Python 2.7.x或3.3.x
  • Windows 7
  • Lakota全合一键盘(kbds.html)
EN

回答 1

Stack Overflow用户

发布于 2013-05-22 09:23:41

问题是,在某个时候,使用不支持特定字符的编码将unicode符号转换为特定的字节序列(这会导致您得到“替换字符”,它恰好是这个特定转换的? )。

Tk的核心是Unicode感知的,至少脚本的初始阶段将使用UTF-8;字符是(好的,几乎可以肯定的)正确地从键盘和Windows中通过。然后发生的是字符被传递到Python层;我不太了解Tkinter的这一部分,但我怀疑问题在哪里(例如,如果生成了错误的字符串类型)。换句话说,它闻起来可能是一种微妙的Tkinter虫。(相比之下,Tcl对字符串的内部概念完全是Unicode感知的,我在我的代码中非常依赖它,并且已经做了很多年了。这肯定有一些权衡,我知道Python在这些权衡中的选择是不同的。)

您可以通过查看所得到的字符串的确切类型来进一步检查。它应该是一个Unicode字符串,否则您将永远遇到此类问题(一些平台和部署必须本机处理256个以上的字符)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16641361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档