PyQt中的编码问题

0 投票
1 回答
952 浏览
提问于 2025-04-15 14:23

我的程序把文件索引存储在用cPickle打包的文件里,里面有一些非英语的文件名。

当我这样做的时候

print f [0]

这里的 f [0] 是 "\xc2\xe8\xf1\xee\xba\xee\xf1\xed\xfb\xe9 \xe3\xee\xe4"(在正常显示下是“Високосный год”,意思是“闰年”),它能正确地以俄语显示字符串。

当程序手动把字符串 u'Високосный год' 加入到 QTreeView 时,一切都很好。

但是当程序直接把这个字符串("\xe3\xee\xe4" 等等)从解包的文件放到 QTreeView 时,它就变成了这样:

查看图片 http://img170.imageshack.us/img170/9226/encoding.png

有没有什么办法可以解决这个问题?

1 个回答

2

你有没有用正确的编码(看起来是“cp1251”)对未解压的字符串运行过decode?如果没有,你需要这样做,以确保你传递给图形界面的字符串是Unicode格式的。

撰写回答