【发布时间】:2013-10-24 23:56:42
【问题描述】:
我有一个使用 Qt 4 构建的应用程序。它使用 latin-1 作为源代码,我总是使用 QString::fromLatin1。但是,当尝试移植到 Qt 5 时(实际上,我同时使用了 Qt 5 和 Windows 8,但我不认为这是 Windows 的错)编码实际上看起来有点正确,在文本之前/之后有一些奇怪的空间。
这是使用 Qt 5 / Windows 8 运行的应用程序:
如您所见,ç 和 ã 看起来是正确的,但在它们之间添加了一些奇怪的空格。此外,ó 字符看起来是正确的,没有空格。
这就是我设置 QLabel 的方式:
m_msgWelcome->setText(QString("Bem vindo ao biocódigo!\nSelecione uma opção ao lado para iniciar"));
我已经尝试了QString::fromUtf8 和QString::fromLatin1 都没有成功。
【问题讨论】:
-
这很奇怪,在真正的编码问题中,我也希望出现错误的字符。您的源文件具有哪种编码?您能否将字符串缩减为“opção”并添加 m_msgWelcome->text().toUtf8().toHex() 的输出?也可能是该特定字体的字体渲染问题。
-
我得到“6f70c3a7c3a36f”toUtf8().toHex()。更改字体纠正了问题,现在我不知道为什么会发生这种情况,因为我使用的是以前工作的相同字体。想将此作为答案发布吗?
标签: c++ qt user-interface utf-8 qt5