Qt中转换为UTF-8的问题

Qt中转换为UTF-8的问题,qt,utf-8,qstring,persian,Qt,Utf 8,Qstring,Persian,我尝试在Qt中显示波斯字符串: QMessageBox msg; QString str = "یا حسین"; msg.setText(QString::fromUtf8(str)); msg.exec(); 但它显示了以下错误: /主页/msi/桌面/VoMail Project/Project/VoMail-build-desktop-Qt_4_8_1_in_PATH_系统_发布/。/VoMail/mainwindow.cpp:40: 错误:对“QString::fromUtf8(Q

我尝试在Qt中显示波斯字符串:

QMessageBox msg;

QString str = "یا حسین";
msg.setText(QString::fromUtf8(str));
msg.exec();
但它显示了以下错误:

/主页/msi/桌面/VoMail Project/Project/VoMail-build-desktop-Qt_4_8_1_in_PATH_系统_发布/。/VoMail/mainwindow.cpp:40: 错误:对“QString::fromUtf8(QString&)”的调用没有匹配的函数

我想使用字符串变量,而不是直接使用字符串

如何将QString变量转换为Utf8?

如图所示,
QString::fromUtf8()
不接受类型为
QString
的参数。您必须给它一个
常量char*
,这样您就可以像这样重写它:

QMessageBox msg;

QString str = QString::fromUtf8("یا حسین");
msg.setText(str);
msg.exec();

这样写不是个好主意

用这个肯定更好

 QString str(tr("ya hossein");
并使用语言学家和添加波斯翻译文件到您的项目

如果您不想使用它,您必须确保您的IDE或代码编辑器(如qtcreator)使用utf8保存文件,并且只需使用

 QString str("یا حسین");

这一定没问题,我在Qt版本2中测试了很多次,

,无法在
fromUtf8()方法中设置非常量参数。相反,我们可以使用
QString::fromUtf8(“یاعلی”)语句。