【发布时间】:2015-03-10 11:43:44
【问题描述】:
我正在尝试弄清楚如何为 PyQt tr() 或 trUtf8() 函数提供 UTF-8 文本。
以下是示例字符串:
self.tr('λληνικά')
self.tr(u'εληνικά')
self.tr('ελνικά'.encode('utf-8'))
self.tr(u'ελληικά'.encode('utf-8'))
self.trUtf8('λληνικ')
self.trUtf8(u'εληνιά')
self.trUtf8('ελνι'.encode('utf-8'))
self.trUtf8(u'ελλκά'.encode('utf-8'))
self.tr 在 Qt Linguist 中显示为乱码。带有self.trUtf8 的显示正常,但在应用pylupdate4 时会触发警告:
Non-ASCII character detected in trUtf8 string
前导 u 和 .encode('utf-8') 似乎没有任何区别,至少在解析时(使用 pylupdate4)。
正确的方法是什么?
我也想知道这条线的作用:
QtCore.QTextCodec.setCodecForTr(QtCore.QTextCodec.codecForName("utf-8"))
但我知道它对pylupdate4 的文件解析没有影响,它只会在执行时产生影响。
【问题讨论】:
标签: python python-2.7 utf-8 qt4 pyqt4