相关疑难解决方法(0)

为什么有些字符不能在Python的IDLE中输入?

我不知道如何解释这个,实际上我正在寻找解释,所以我只想提一些步骤来重现这个问题.希望有人能够理解和阐述:

  1. Windows 8.1上的Python 3.5.0.(但无论Python和Windows版本如何,这都应该是可重现的.)
  2. 安装波斯标准键盘.(它可以从这里下载.再次我确定问题不仅限于这个特定的键盘,并且在其他一些语言中有一些字符具有相同的问题.只是为了重现性.)
  3. 打开IDLE,将键盘的布局设置为波斯语并键入一些字符.
  4. 对于某些字符,如'Â'(Shift + h).它们打字非常好.
  5. 对于其他一些角色,比如'ی'(d).它们被转换为类似的字符,在本例中为'ي'(注意字形下的小点).
  6. 有些字符无法输入.例如'﷼'(Shift + 4).这些输入为'?' 在IDLE.
  7. 以上所有字符都可以在我安装的几乎任何其他程序中输入.其中一个最简单的是notepad.exe.
  8. 我们可以在另一个程序中输入相同的字符,例如notepad.exe,然后将它们复制并粘贴到IDLE中.这表明IDLE支持unicode字符,只是不能输入它们.

我是IDLE的粉丝.它是标准Python安装附带的轻量级IDE,我不想因此而切换到另一个IDE.但对于我来说,以上是最讨厌IDLE的事情.每当我需要编写一个包含波斯语字符的程序时,我不能相信IDLE正确输入它们,我必须打开其他程序并使用复制粘贴方法.

我正在寻找的是:

  • 为什么会这样?问题出在哪儿?
  • 有没有解决方法?
  • 与此问题直接相关的任何文档或错误报告.

此信息也可能有所帮助:

>>> import locale
>>> locale.getdefaultlocale()
('en_US', 'cp1256')
>>> locale.getpreferredencoding()
'cp1256'
>>> locale.getlocale()
('English_United States', '1252')
>>> 
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
Run Code Online (Sandbox Code Playgroud)

谢谢.

更新:

请参阅下面的前三条评论.似乎这个问题是由在tkinter应用程序中键入时使用WindowsBestFit映射引起的.

为了测试它是否在python/tkinter绑定或tcl/tk本身中的一些错误配置,我下载并安装了Tkabber.这是一个用Tcl/Tk编写的应用程序.那么,存在完全相同的问题,即我不能输入上面的字符,但可以复制和粘贴它们.所以我的结论是问题的根源在于tcl/tk本身而不是IDLE/Python/tkinter.

我的问题仍然存在.

unicode tk-toolkit tkinter codepages python-idle

6
推荐指数
1
解决办法
1102
查看次数

UnicodeWarning:Tkinter中的特殊字符

我在Tkinter(Python 2.7)编写了一个程序,这是一个挪威语的æøåscrabblehelper,它包含一些特殊的字符(),这意味着我的wordlist(ordliste)包含带有特殊字符的单词.

当我运行我的函数finnord(c*)时,它返回'cd'.我正在使用一个entry.get()字来输入我的功能.

我的问题是entry.get()的编码.我有本地编码UTF-8,但是UniCodeError当我在输入框中编写任何特殊字符并将它们与我的wordliste匹配时,我得到了一个.

这是我的输出.

Warning (from warnings module):
  File "C:\pythonprog\scrabble\feud.py", line 46
if s not in liste and s in ordliste:
UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode -    
interpreting them as being unequal
Run Code Online (Sandbox Code Playgroud)

当我写在我的shell中时:

> ordinn.get()
u'k\xf8**e'
> ordinn.get().encode('utf-8')
'k\xc3\xb8**e'
> print ordinn.get()
kø**e
> print ordinn.get().encode('utf-8')
kø**e
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么我不能将ordinn.get()(条目)与我的单词列表相匹配?

python encoding tkinter character

5
推荐指数
1
解决办法
6191
查看次数

GUI中的希腊字母 - PYTHON

我不知道如何在GUI中写希腊字母.我正在研究物理程序,我需要在GUI上显示单位.

我是否必须下载任何额外的库?我必须使用一个模块吗?在GUI中编写字母的最简单方法是什么?

我读了很多关于UTF8的内容,但没有弄清楚如何使用它.

我正在使用Tkinter进行GUI

我使用的是Python 2.6.6

谢谢

python tkinter

2
推荐指数
1
解决办法
5547
查看次数