0

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

这是输出:

在此处输入图像描述

我该如何纠正?

4

3 回答 3

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 源文件:

在此处输入图像描述

于 2013-05-08T09:05:30.897 回答
1

Try this instead. That way the string literal itself will be Unicode for sure:

QString appTitle = QString::fromStdWString(L"تجربه");
于 2013-05-08T10:00:59.790 回答
0

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

QString a=tr("تجربه")
于 2019-03-17T17:18:57.210 回答