Qt中的阿拉伯语与QString

时间:2013-05-08 08:46:11

标签: c++ qt arabic

我想在我的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();
}

这是输出:

enter image description here

我该如何纠正?

3 个答案:

答案 0 :(得分:3)

这看起来像典型的“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源文件:

enter image description here

答案 1 :(得分:1)

试试这个。这样,字符串文字本身就是Unicode:

QString appTitle = QString::fromStdWString(L"تجربه");

答案 2 :(得分:0)

设置语言环境,并直接将QString与阿拉伯语一起使用。如果要将gui更改为英语,则必须更改语言环境并在QString中使用tr。

QString a=tr("تجربه")