Gtk发出警告且不显示我的菜单项
这段 Python 代码:menu_item = gtk.MenuItem("après")
会出现一个警告信息:Gtk warning Invalid input string
,而且菜单项没有显示出来。那我应该添加或修改什么才能让这个菜单项显示出来呢?
1 个回答
1
你的编辑器很可能在用其他编码格式保存源文件,比如 Latin-1 或 Windows-1252,而 GTK 需要的是 UTF-8 编码。你可以试试把 "après"
替换成 u"apr\u00e8s".encode("utf-8")
。如果这样能正常工作,那问题就出在这里。
要正确解决这个问题,你需要:
- 在 Python 中声明编码,使用
# -*- coding: utf-8 -*-
- 确保你的编辑器是用声明的编码格式保存文件。如果有必要,可以用十六进制编辑器来确认这一点。
- 对于非 ASCII 字符串,使用 Unicode 字符串字面量,也就是用
u"après"
而不是"après"
。如果不接受 Unicode 字符串,可以用u"après".encode("utf-8")
。一般来说,PyGTK 是支持 Unicode 字符串的,所以不需要特别编码成 UTF-8。