如将,0x11,0x22,0x33……,这些16进制的QBytearray原本就是字符串,将其转换为QString
QString TCP_parse::hexStringToQString(const QString& hexString) {
// 去掉字符串中的空格
QString hexWithoutSpaces = hexString.simplified();
// 判断是否为奇数个字符,如果是,在最后添加一个'0'
if (hexWithoutSpaces.size() % 2 != 0) {
hexWithoutSpaces.append('0');
}
// 将16进制字符串转换为QByteArray
QByteArray byteArray;
for (int i = 0; i < hexWithoutSpaces.size(); i += 2) {
QString byteString = hexWithoutSpaces.mid(i, 2);
bool ok;
char byte = static_cast<char>(byteString.toInt(&ok, 16));
if (!ok) {
qWarning() << "Invalid hex string";
return QString(); // 返回空字符串表示转换失败
}
byteArray.append(byte);
}
// 将QByteArray转换为QString
QString result = QString::fromUtf8(byteArray);
return result;
}