PyQt5 unicode翻译:pylupdate5输出转义序列

时间:2013-10-03 10:29:02

标签: python qt unicode pyqt pyqt5

我在Python 2.7.5上使用PyQt5(Qt5.1.1)开发了一个应用程序。该应用程序广泛使用from __future__ import unicode_literals启用的unicode字符串。源代码设置为# -*- coding: utf-8 -*-,因此unicode字符按原样写入源代码(不需要转义)。

使用pylupdate5'进行翻译,因为字符串被提取并可以使用Qt Linguist翻译并重新应用。这适用于包含非ASCII字符和不包含非ASCII字符的字符串。但是,任何包含unicode字符的字符串最终都会在.ts文件中包含乱码。例如,“打开”后跟省略号输出为:

&Open…

单词后面的位是省略号字符(E2 80 A6)的unicode代码单元,尽管在Qt Linguist中显示为â ¦。翻译它(并在翻译中输入正确的unicode工作正常)。使用更正后的unicode替换â ¦文件中的.ts会停止生成的翻译工作,建议tr也会看到乱码版。

那么这里发生了什么?

1 个答案:

答案 0 :(得分:1)

我对此很少有经验,但看看我生成的一个.ts文件,第一行是<?xml version =" 1.0"编码=" UTF-8">和BBEdit确认它是utf-8编码的。在这种情况下,应该正确显示非Latin-1字符。实际上我只是将一个省略号编辑成了.ts文件中的一个字符串,然后在Linguist中打开它并正确显示。所以它可能只是源文件或.ts文件的文件编码。