QT *char 转QString

由于下位机通过串口传上来的字符串都是单字节的ASIIC码,直接转换为QString 不行,会出现乱码。

原因是QString是双字节的字符,所以,要特殊处理。

上代码

QString bootloadVersion = QString::fromLocal8Bit((const char *)&packet->aData[1], (int)packet->aData[0]);
时间: 2025-01-04 04:23:26

QT *char 转QString的相关文章

【转载】Qt中的QString,QByteArray,Qchar, char*

先要说的是QString. 之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int等一样的基本数据结构来实现的. 每一个GUI程序都需要string,这些string可以用在界面上的提示语,也可以用作一般的数据结构.C++语言提供了两种字符串的实现:C风格的 字符串,以'\0‘结尾:std::string,即标准模版库中的类.Qt则提供了自己的字符串实现:QString.QString以16位 U

qt上的char * 和 QString互相转换

使用Qt开发嵌入式时,常引用一些C语言的驱动,那就涉及到QString和char *之间的互相转换,方法如下,直接上代码:    // char[]转QString     unsigned char buf[3]={0x2,0x56,0xff};     QString str;     for(int i =0;i < sizeof(buf)/sizeof(buf[0]);i++)     {         str += QString::number(buf[i]);     }    

QT中字符串QString类型的转换

把QString转换为 double类型 方法1.QString str="123.45"; double val=str.toDouble(); //val=123.45 方法2.很适合科学计数法形式转换 bool ok; double d; d=QString("1234.56e-02").toDouble(&ok); //ok=true;d;12.3456. 把QString转换为float形 1.QString str="123.45&qu

Qt控制台输出QString

有时候想在控制台输出我们想要的QString变量. 1.qDebug可以实现在控制台终端打印,但我们还是想使用C++中的std::cout<<variable This function does nothing if QT_NO_DEBUG_OUTPUT was defined during compilation. 2.网上说的方法利用QTextStream: Cpp代码   #include <QTextStream> QTextStream cin(stdin, QIODe

Qt中的QString和QStringList常用方法

QString QString s1 = "abc"; QString s2("hello"); //字符串连接 QString s = s1 + s2; //组包 s = QString("a = %1, b = %2, c = %3").arg(250).arg("hello").arg(22.22); qDebug()<<s; //输出结果:a = 250, b = hello, c = 22.22 s =

QT QString转char*,char*转QString;简单明了,看代码。

//原始QStringQString qs = QString::fromLocal8Bit("我的");std::string strQs = qs.toStdString(); int qs_size = qs.length();//长度为3int strQs_size = strQs.length();//长度8 //得到转换后的char*char* p = new char[strQs_size];memcpy(p, qs.toStdString().c_str(), strQ

Qt常用类——Qstring

Qstring有一些方面跟C/C++中的string的使用,例如把一个字符串追加到另一个字符串中,也是用"+".也有append函数等. 下面是是Qstring的一些常用的具体函数示例: Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size = -1 ) 例: QString str = "Berlin"; str.fi

Qt编程之QString 处理换行

由于之间写过的一篇文章,Unix,windows,Mac里面的换行符不一样,导致处理也不一样,我现在要用QString以行分割(读取的文本文件的里面有换行符).所以要通吃这三种换行符 http://www.cnblogs.com/foohack/p/4125829.html 用正则表达式QRegEx就可以了: QString.split(QRegExp("[\r\n]"),QString::SkipEmptyParts); 这样返回的List就是以行分割的. references:ht

Qt比较字符串Qstring是否相等

QString str = "相等"; if(str ==QString::fromLocal8Bit("球形")) { qDebug()<<"相等"; } 原文地址:https://www.cnblogs.com/herd/p/11739869.html