我将Qt4项目移植到Qt5(Qt 5.4.1 + VS2013),该项目有一些字符串翻译。源文件是UTF-8编码的。但今天我发现这段代码不起作用(它们在Qt4中都运行良好)。
this->paraList.push_back( QPair<QString,QString>( QString(tr("℃:")), QString(tr("Ω")) ) );
&#39; paraList&#39;是一个QList,其中的字符串最终显示在QTableWidget中。它们都在QLiguist中正确显示,但是当我的应用程序运行时,摄像头符号和欧姆符号无法正确翻译,如下所示
但所有其他字符串都已正确翻译。我的语言环境是zh_CN。为什么这两个字符如此特殊?
答案 0 :(得分:2)
问题在于编码。您使用非ASCII字符作为转换模式。 Qt5中有一些变化如何转换c字符串(我不记得细节),我怀疑这可能是个问题。
尝试使用trUtf8这可以解决问题。