精华内容
下载资源
问答
  • qstring转string
    千次阅读
    2019-05-31 19:20:51

    1.QString转string

    QString s;

    string str = s.toStdString();

    2.string转换QString

    QString s= QString::fromStdString(str);

    更多相关内容
  • C++ Qt QString转string乱码的处理方法

    千次阅读 2021-12-16 21:35:53
    QString转string时,如果有中文,会出现乱码,例如下面的代码 #include <QCoreApplication> #include <QDebug> #include <string> #include <iostream> using namespace std; int main...

    QString在转string时,如果有中文,会出现乱码,如果是文件名,那么读文件时就会出现空指针现象,还是要多注意。

    例如下面的代码

    #include <QCoreApplication>
    #include <QDebug>
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        QString qstr1 = "D:/测试视频/笑傲江湖第1集.mp412345A";
        std::string str1 = qstr1.toStdString();
        qDebug() << qstr1;
        cout << str1 << endl;
    
        return a.exec();
    }
    

    运行结果
    在这里插入图片描述

    由于有中文,QString转std::string时不能直接使用toStdString,如果把QString转为u8, 再转string依然是乱码,如下图:
    在这里插入图片描述

    那该如何解决呢,下面提供解决办法,代码如下:

    #include <QCoreApplication>
    #include <QDebug>
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    string qstr2str(const QString& qstr)
    {
        QByteArray cdata = qstr.toLocal8Bit();
        return string(cdata);
    }
    
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        QString qstr1 = u8"D:/测试视频/笑傲江湖第1集.mp412345";
        //std::string str1 = qstr1.toStdString();
        std::string str1 = qstr2str(qstr1);
        qDebug() << qstr1;
        cout << str1 << endl;
    
        return a.exec();
    }
    

    toLocal8Bit()的解释如下:
    Returns the local 8-bit representation of the string as a QByteArray. The returned byte array is undefined if the string contains characters not supported by the local 8-bit encoding.
    QTextCodec::codecForLocale() is used to perform the conversion from Unicode. If the locale encoding could not be determined, this function does the same as toLatin1().
    If this string contains any characters that cannot be encoded in the locale, the returned byte array is undefined. Those characters may be suppressed or replaced by another.

    string转QString也会乱码,解决方法如下:

    //string转QString
    QString str2qstr(const string& str)
    {
        return QString::fromLocal8Bit(str.data());
    }
    

    测试代码如下:

    #include <QCoreApplication>
    #include <QDebug>
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    //QString转string
    string qstr2str(const QString& qstr)
    {
        QByteArray cdata = qstr.toLocal8Bit();
        //QByteArray cdata = qstr.toUtf8();  //string乱码
        return string(cdata);
    }
    
    //string转QString
    QString str2qstr(const string& str)
    {
        return QString::fromLocal8Bit(str.data());
    }
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        QString name = u8"D:/测试视频/笑傲江湖第1集.mp412345";
        //std::string sname = qstr1.toStdString();
        std::string sname = qstr2str(name);
        qDebug() << name;
        cout << sname << endl;
    
        string sname2 = "abc天龙八部123";
        cout << "带中文的string " << sname2 << endl;
        QString name2 = str2qstr(sname2);
        qDebug() << u8"string转QString的结果 --> " << name2;
    
        return a.exec();
    }
    

    输出结果:
    “D:/测试视频/笑傲江湖第1集.mp412345”
    string转QString的结果 --> “abc天龙八部123”
    D:/测试视频/笑傲江湖第1集.mp412345
    带中文的string abc天龙八部123

    打印时,qDebug先打印出来,cout后打印出来。

    展开全文
  • //进行语音播报 auto device=(CarDevice*)...QString filePath = “欢迎光临”; device->controlScreenAndAudio(alarm->pAlarmData->GetEventInfo().strPlateNumber,string(filePath.toLocal8Bit()));

    //进行语音播报
    auto device=(CarDevice*)(carDeviceInfo->m_carDevice);
    QString filePath = “欢迎光临”;
    device->controlScreenAndAudio(alarm->pAlarmData->GetEventInfo().strPlateNumber,string(filePath.toLocal8Bit()));

    展开全文
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片...解决: string(path.toLocal8Bit()); QString str2qs

    解决: string(path.toLocal8Bit());

    QString str2qstr(const string str)
    {
    return QString::fromLocal8Bit(str.data());
    }

    string qstr2str(const QString qstr)  
    {  
        QByteArray cdata = qstr.toLocal8Bit();  
        return string(cdata);  
    } 
    

    转载: http://blog.csdn.net/definewl/article/details/47017681.

    展开全文
  • 关于QString转string的堆异常 IDE是基于QT4.7(其他平台暂时没有测试)。在进行字符串转换时调用toStdString()进行转换出现了堆异常,代码如下: QString Q_str("hello"); string S_str; S_str = Q_str.toStdString...
  • QString string (有中文) 用这种方式处理中文是有问题的toStdString()。需要采用下面的方式进行转换。 QString str2qstr(const string str) {  return QString::fromLocal8Bit(str.data()); } string qstr2...
  • QString qstr = "( 中文)"; QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); QByteArray cdata = qstr.toLocal8Bit(); std::string str = std::string(cdata); printf...
  • QStringstring相互转换

    2022-07-20 20:19:43
    QStringstring相互转换
  • QT中QString 转string \QString const char *
  • Qt中QString转string中文乱码问题

    万次阅读 多人点赞 2017-02-28 16:36:36
    QStringstring相互转换可以用如下方法:...数字转QStringQString::number();然而QString直接与string相互转换会出现中文乱码问题,为此Qt4中提供了三条语句QTextCodec::setCodecForTr(QTextCodec::codecForName(
  • QstringString

    千次阅读 2021-07-15 15:02:26
    Qstring与String互转 (1)QString转String代码如下: ** QString QS; String s = QS.toStdString();** (2)String转QString ** String s = Qstring::fromStdString(QS)**
  • QStringstring的相互转换

    千次阅读 2021-11-24 19:31:39
    1.QString转换String string s = qstr.toStdString(); 2.String转换QString QString qstr2 = QString::fromStdString(s);
  • string QString string str = "abc"; QString qstr = QString::fromStdString(str); QString string QString qstr = "dddd"; string str = qstr.toStdString(); int QString int i= 0; QString ...
  • QT QStringstring的相互转换、

    千次阅读 2022-01-04 13:38:54
    QT QStringstring的相互转换、 方法1: string xxxClass::QStringToString(const QString& src) { return src.toUtf8().data(); } QString xxxClass::StringToQString(const string& src) { ...
  • 【QT】QStringstring相互转换

    千次阅读 2022-01-15 14:54:06
    string转QString QString stringToqstring(string str) { return QString::fromLocal8Bit(str.data()); } QString转string string qstringTostring(QString qstring) { return (const char*)qstring.toLocal8...
  • QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(const QString qstr) ...在需要使用中文QString时,先用string写一个,然后过去就可以啦.
  • QStringstring转换

    2020-04-29 09:14:36
    【1】QString转换为string QString qString("你好"); std::string stdString = qString.toStdString(); QTextCodec* pCode = QTextCodec::codecForName("gb18030"); // 如果code为0,表示在运行的机器上没有装...
  • Qt Qstring转换为string

    万次阅读 2018-08-03 08:50:44
    在QT与Opencv一起使用的时候打开图片的时候有个问题,Qt的字符串是Qstring格式的,这个格式不能直接用于Opencv的imread()函数,要转换成普通的string格式才可以进行读取这个图片再进行图片读取,再进行处理。...
  • QString qstr=“qstr”; string str = null; str = qstr.toStdString();//出现中文乱码 //处理方法 str = string(qstr.toLocal8Bit());
  • QStringString相互转换

    千次阅读 2017-04-10 20:41:56
    自:http://blog.csdn.net/q601510717/article/details/8350217 ...下面介绍QStringstring类型相互转换的方法。(QT4.6上已测试可用。) 1、在头文件中添加inlucde信息和转换函数声明: view plai
  • 我在Linux环境下采用Qt开发平台 使用QString的方法tostdstring()的时候,会乱码。  Linux的Qt开发环境下存储字符串的方式是Qstring...不是标准的Uft-8格式,所以将Qstring转成std::string格式后中文路径及文件出现
  • stringQString之间的转换

    千次阅读 2018-06-13 19:40:27
    1.fromStdString直接转换 string str; QString qstr; //从QString 到 std::string ...//从std::stringQString qstr = QString::fromStdString(str); 2.fromLocal8Bit(cstr.c_str()) std::s...
  • 注意:需要现在头文件中加上以下代码(如果多个头文件需要转换,则...1、QString转string QString strTest; string sTest = string(strTest.toLocal8Bit()); 或者: QString strTest; QByteArray ba = strTest.toLo
  • (1)char*转QString 去看QString的帮助手册,发现QString存储16位QChar类型数据,QByteArray存储原始数据或8位以'/0'结束符的字符串;而从char *转为QString则更简单了,直接使用QString的构造函数即可: const ...
  • QStringstring 的转化多半都是用于 Qt 中,转化方式如下: QString str_1; string str_2; str_2 = str_1.toStdString(); //QString转化为string str_1 = QString::fromStdString(str_2); //string转化为...
  • Qt Qstring与c++标准string 的转化 string str; QString qstr; //从QString 到 std::string str = qstr.toStdString(); //从std::stringQString qstr = QString::fromStdString(str);
  • std::string转QString 1.一般情况下(不包含中文) std::string str="111"; QString strQ=str.c_str(); 2.包含中文情况下 std::string str="中文测试"; QString strQ=QString::fromLocal8Bit(str.c_str()) ...
  • qt 的qstring转string到char一直崩溃

    千次阅读 2017-05-08 15:50:43
     strncpy(CFtp::m_tFtpInfor.szIpBuf, (const char *)iniSetting.value("FTP/ip", "127.0.0.1").toString().toStdString().c_str(), 32); 这样一直崩溃,可能是字符格式引起的,改为下面的就可以了 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,765
精华内容 8,306
关键字:

qstring转string

友情链接: cPP5-1.zip