Qt中转换为UTF-8的问题
我尝试在Qt中显示波斯字符串: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
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(“یاعلی”)代码>语句。