pygtk 的 Unicode 问题
我遇到了一个问题: 我正在用Python编写一个问答游戏,适用于XO(OLPC机器),使用了pygame、pygtk和pgu这几个库。 当用户(一个小朋友)输入内容时,文本区域(来自pgu)无法识别像ñ、ó、á这样的特殊字符。 我尝试过一个更小的程序,只用pygame和pgu,结果一切正常。我觉得问题可能出在pygtk的unicode处理上,但我不知道该怎么检查或修正。
app = gui.App()#gui is from pgu
c = gui.Container(width =1200,height = 900)
background = pygame.display.get_surface()
app.init(c,background)
#load initial screen
while self.running and salir==1:
background.blit(self.pantalla,(0,0))
x,y = pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.running = False
return
if event.type == pygame.KEYDOWN:
if event.unicode.isalnum():
print event.unicode
print "Evento pygame:",event.key
if event.key == pygame.K_DOWN:
exit()
app.event(event)
app.paint(background)
app.update(background)
pygame.display.flip()
#now I have to manage pygtk events:
p = gtk.events_pending()
while p:
gtk.main_iteration()
当我按下ñ键时,日志文件里显示:key ntilde unrecognized。
请帮帮我,我卡住了,必须交付这个软件。
1 个回答
0
当你导入gtk的时候,默认的编码会设置为utf-8。
import gtk, sys
print sys.getdefaultencoding()
因为在没有gtk的情况下运行得很好,我猜这可能和编码有关。