-1

wx.TextCtrl を使用するテキスト エディターでは、アルファベット キー (az) 数字キー (0 ~ 9) が Unicode 値にマップされます。

エラーが発生する行を以下に示します。

self.statusbar.SetStatusText(engine.roman2mal(self.word.decode('utf-8')),0)

エラーメッセージは以下のとおりです。

Traceback (most recent call last):
  File "F:\EZHUTHANI_WIN\ezhuthani\beditor.py", line 498, in PreviewConv
    self.statusbar.SetStatusText(engine.roman2mal(self.word.decode('utf-8')),0)
  File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

これらのキー (Enter、Space Bar、Backspace) をマップする方法はありますか? 他のキーは以下のようにマッピングされます。

keymap = {}
keymap['a'] = u'\u0D05';
keymap['A'] = u'\u0D06';
4

2 に答える 2

1
self.statusbar.SetStatusText(engine.roman2mal(self.word.decode('utf-8')),0) 

.decode 関数を削除する必要がある場合、コードは次のようになります

 self.statusbar.SetStatusText(engine.roman2mal(self.word),0) 
于 2013-06-21T06:35:15.350 に答える
1

何を達成するのか完全にはわかりませんが、使用したいようです

wx.WXK_BACK
wx.WXK_ESCAPE
wx.WXK_RETURN
...

多分

keymap = {}
keymap[wx.WXK_ESCAPE] = u'<ESCAPE>'
...
于 2013-06-17T10:17:04.220 に答える