Warum können einige Zeichen nicht in Pythons IDLE eingegeben werden?

Ich weiß nicht, wie ich das erklären soll. Eigentlich suche ich nach einer Erklärung. Ich erwähne nur einige Schritte, um das Problem zu reproduzieren. Hoffentlich kann jemand Folgendes verstehen und erläutern:

Python 3.5.0 unter Windows 8.1. (Dies sollte jedoch unabhängig von der Python- und Windows-Version reproduzierbar sein.) Mit installierter persischer Standardtastatur. (Es kann von @ heruntergeladen werdeHie. Ich bin mir wieder sicher, dass das Problem nicht auf diese spezielle Tastatur beschränkt ist und dass es einige Zeichen in einigen anderen Sprachen gibt, die das gleiche Problem haben. Nur aus Gründen der Reproduzierbarkeit. )Öffnen Sie IDLE, stellen Sie das Tastaturlayout auf Persisch ein und geben Sie einige Zeichen ein.Für einige Zeichen wie 'آ' (Umschalt + h). Sie sind perfekt getippt.Für einige andere Zeichen wie 'ی' (d). Sie werden in ein ähnliches Zeichen umgewandelt, in diesem Fall 'ي' (beachten Sie die kleinen Punkte unter der Glyphe).Es gibt einige Zeichen, die nicht eingegeben werden können. Zum Beispiel '﷼' (Umschalt + 4). Diese werden als "?" in IDLE.Alle oben genannten Zeichen können in fast jedem anderen Programm eingegeben werden, das ich installiert habe. Eine der einfachsten ist notepad.exe.Wir können die gleichen Zeichen in ein anderes Programm eingeben, z. notepad.exe und kopieren Sie diese in IDLE. Dies zeigt, dass IDLE Unicode-Zeichen unterstützt, diese aber nicht eingeben kann.

Ich bin ein Fan von IDLE. Es handelt sich um eine leichte IDE, die mit der Standard-Python-Installation geliefert wird, und ich möchte aus diesem Grund nicht auf eine andere IDE wechseln. Aber das Obige ist für mich das Ärgerlichste an IDLE. Immer wenn ich ein Programm mit persischen Zeichen schreiben muss, kann ich nicht darauf vertrauen, dass IDLE sie richtig eingibt, und ich muss ein anderes Programm öffnen und die Copy-Paste-Methode verwenden.

Was ich suche ist:

Warum passiert das? Wo ist das Problem Gibt es irgendwelche Workarounds?Jede Dokumentation oder Fehlerberichte, die in direktem Zusammenhang mit diesem Problem stehen.

Auch diese Informationen können hilfreich sein:

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

Vielen Dank

Aktualisieren

Bitte sehen Sie die ersten drei Kommentare unten. Es scheint, dass dieses Problem durch die Verwendung von @ verursacht wiWindowsBestFit-Zuordnungen während Sie tkinter apps eingeben.

Um zu testen, ob es sich um eine schlechte Konfiguration in Python / Tkinter-Bindungen oder in Tcl / Tk selbst handelt, habe ich @ heruntergeladen und installier Tkabber. Es ist eine in Tcl / Tk geschriebene Anwendung. Nun, genau das gleiche Problem gibt es dort, d. H. Ich kann die obigen Zeichen nicht eingeben, aber kopieren und einfügen. Mein Fazit ist also, dass die Wurzel des Problems in tcl / tk selbst und nicht in IDLE / Python / tkinter liegt.

Meine Fragen bleiben noch offen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage