我正在将一个应用程序从linux移植到windows。将编码从utf-8更改为windows-1250没有帮助event.keyval,它为波兰语字母报告以下消息:
character_e=事件字符串UnicodeDecodeError:"utf-8"编解码器无法解码位置0中的字节0xb3:无效的起始字节
该事件针对字符"ł"等,mingw64将其解释为utf-8(?(
根据文档,event.keyval
不是字符串或字符。它是一个整数(准确地说是guint
(,请参见此处。
您可能应该使用GDK函数gdk_keyval_to_unicode
来转换它。在Python中,它应该是Gdk.keyval_to_unicode
。它需要一个参数;keyval。像这样:
character = Gdk.keyval_to_unicode(event.keyval)