2015-05-12 43 views
0

我正在将Qt4项目移植到Qt5(Qt 5.4.1 + VS2013),该项目有一些字符串翻译。源文件是UTF-8编码的。但是今天我发现这段代码不起作用(它们在Qt4中都运行良好)。为什么这些字符串不是由Qt 5翻译的

this->paraList.push_back(QPair<QString,QString>(QString(tr("℃:")), QString(tr("Ω")))); 

'paraList'是一个QList,其中的字符串最终显示在QTableWidget中。他们都正确显示在QLiguist,但是当我的应用程序运行,摄氏符号和符号欧姆不正确地翻译,如下

enter image description here

但所有其他字符串被正确翻译。我的区域设置是zh_CN。为什么这两个字是那么特别

+1

您确定您的应用程序中使用的字体是否支持这些符号? – TheDarkKnight

+0

是否有可能这些翻译是在一个单独的翻译文件('* .qm')中?如果是这样,那个文件是否加载到翻译器中? – Zaiborg

+1

在Qt 5.4 + VS2013中,它适用于我。我认为@TheDarkKnight是正确的,与字体的问题。 – gomons

回答

2

问题是编码。您正在使用非ASCII字符作为翻译模式。 Qt5在Ct字符串转换方面发生了一些变化(我不记得细节),我怀疑这可能是一个问题。

尝试使用trUtf8这应该解决问题。

相关问题