如何在Qt源代码中处理带"±"的GUI字符串?

fal*_*lkb 0 c++ qt

当我在我的GUI源中使用"±"时,我的Qt-5.6.2不喜欢它,程序的GUI只显示一个黑色的菱形.我如何以正确的方式编码?它似乎不是普通的拉丁语.

p-a*_*l-o 7

使用Unicode:

QString s(0x00B1);
qDebug() << s;
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,QString(QChar)隐式使用构造函数(QChar以十六进制表示法的16位整数文字实例化).

关于ui文件:该uic工具会将字符串文字中的非ASCII字符转换为八进制转义序列.在生成的标题中,可以找到这样的行(在retranslateUi方法内):

pushButton->setText(QApplication::translate("Form", "\302\261", Q_NULLPTR));
Run Code Online (Sandbox Code Playgroud)

传递给的第二个参数QApplication::translate是加号 - 减号的2字节长UTF-8表示.