我的目标是将包含在QString中的十六进制值转换为其ASCII值。
我有:
QString hexaValue = receiveText.left(14); // receive texte is another QString
我的问题是,我在Qstring
而不是QByteArray
中有十六进制值,所以我找到的所有解决方案都不起作用,我试着调用{{1 }}或.data()
,但这不起作用,因为我被迫使用fromHex()
而不是QString
我应该将QByteArray
转换为QString
,是否有一个简单的解决方案?
答案 0 :(得分:3)
您可以使用QString::toLatin1
将十六进制字符串转换为QByteArray并将其转换回QString,使用QString::fromLocal8Bit
进行本地编码,如果您的十六进制编码字符串采用UTF8,则使用QString::fromUtf8
。
QString hexaValue = receiveText.left(14); // received text is another QString
QString textValue = QString::fromLocal8Bit(QByteArray::fromHex(hexaValue.toLatin1()));