【发布时间】:2013-10-03 10:29:01
【问题描述】:
我有一个在 Python 2.7.5 上使用 PyQt5 (Qt5.1.1) 开发的应用程序。该应用程序广泛使用使用from __future__ import unicode_literals 启用的Unicode 字符串。源代码设置为# -*- coding: utf-8 -*-,因此 unicode 字符按原样写入源代码(无需转义)。
使用pylupdate5 'works' 的翻译,只要字符串被提取并且可以使用Qt Linguist 翻译并重新应用。这适用于包含非 ASCII 字符和不包含非 ASCII 字符的字符串。但是,任何包含 unicode 字符的字符串最终都会在 .ts 文件中包含乱码。例如,后跟省略号的“打开”输出为:
&Open…
单词后面的位是省略号字符 (E2 80 A6) 的 unicode 代码单元,尽管这在 Qt Linguist 中显示为 â ¦。翻译它(并在翻译中输入正确的 unicode 可以正常工作)。用更正后的 unicode 替换 .ts 文件中的 â ¦ 会阻止生成的翻译工作,这表明 tr 也看到了乱码版本。
那么这里发生了什么?
【问题讨论】:
标签: python qt unicode pyqt pyqt5