我想在我的Qt应用程序中添加阿拉伯语标题,但它不起作用。这是我的代码:
#include "mainwindow.h"
#include <QtGui/QApplication>
#include <QString>
#include <QTextStream>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
mainWindow w;
QString appTitle("تجربه");
w.setWindowTitle(appTitle);
w.show();
return a.exec();
}
这是输出:
我该如何纠正?
这看起来像典型的“UTF-8解释为ISO-8859-1”编码问题。 实际上它是“CP1256被解释为Latin1”的问题。
在Windows上,使用非Unicode代码页,请尝试以下操作:
QString appTitle = QString::fromLocal8Bit("تجربه");
如果您的源文件是UTF-8,请尝试以下方法:
QString appTitle = QString::fromUtf8("تجربه");
(请参阅codecForLocale()
了解该怎么做。)
Qt Creator 2.7 / Windows 7(在VM中)/ UTF-8源文件:
试试这个。这样字符串文字本身就是Unicode肯定:
QString appTitle = QString::fromStdWString(L"تجربه");
设置一个语言环境并直接使用QString和arabic。如果您想将gui更改为英语,则必须更改语言环境并在QString中使用tr。
QString a=tr("تجربه")