将QString十六进制转换为ASCII值

时间:2017-01-12 10:18:42

标签: c++ qt hex qstring

我的目标是将包含在QString中的十六进制值转换为其ASCII值

我有:

QString hexaValue = receiveText.left(14); // receive texte is another QString

我的问题是,我在Qstring而不是QByteArray中有十六进制值,所以我找到的所有解决方案都不起作用,我试着调用{{1 }}或.data(),但这不起作用,因为我被迫使用fromHex()而不是QString

我应该将QByteArray转换为QString,是否有一个简单的解决方案?

1 个答案:

答案 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()));