c++ - 将 QString 十六进制转换为 ASCII 值

标签 c++ qt hex qstring

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

我有:

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

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

我应该将我的QString转换为QByteArray吗?有简单的解决方案吗?

最佳答案

您可以使用QString::toLatin1将十六进制字符串转换为QByteArray,并将其转换回QString,使用QString::fromLocal8Bit进行本地编码或QString::fromUtf8 如果您的十六进制编码字符串采用 UTF8。

QString hexaValue = receiveText.left(14); // received text is another QString
QString textValue = QString::fromLocal8Bit(QByteArray::fromHex(hexaValue.toLatin1()));

关于c++ - 将 QString 十六进制转换为 ASCII 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41610527/

相关文章:

c++ - 在 OpenGl 中导入和显示 .fbx 文件

前置自增运算符的C++继承

c++ - 未初始化的指针就像已初始化一样工作

c - 使用 sscanf 从字符串中读取十六进制值

php - 如何为 imagecolorallocate 指定颜色?

c++ - 如何让 C++ 程序读取使用 Python subprocess.call() 传递给它的参数?

c++ - 读取 fstream 返回垃圾

c++ - 将 QBuffer 用于二进制数据

c++ - 如何知道子窗口被父窗口销毁

java - 使用 Java 检测 ETX 字符