在 Qt 中将 QString 转换为 Ascii 值,反之亦然

2023-12-01

我有一个QString StrData = "abcd"我想要得到Ascii该字符串的十六进制值,反之亦然。

例如来自"abcd" to "61 62 63 64"和来自"61 62 63 64" to "abcd"

我设法获得十六进制的 Ascii 值,但不知道如何取回它

Qstring StrData = "abcd";
Qstring HexStrData;
for (int i = 0; i < StrData.length(); i++) {
    HexStrData.append(Qstring::number(StrData.at(i).unicode(), 16));
    HexStrData.append(" ");
}

要进行第一次转换,您可以使用以下方法:

QString StrData = "abcd";
qDebug()<<"before "<< StrData;
QStringList numberString;
for(const auto character: StrData){
    numberString << QString::number(character.unicode(), 16);
}
QString HexStrData= numberString.join(" ");

qDebug()<<HexStrData;

对于第二种情况要简单得多,如下所示:

QString str = QByteArray::fromHex(HexStrData.remove(" ").toLocal8Bit());
qDebug()<<str;

Output:

before  "abcd"
"61 62 63 64"
"abcd"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Qt 中将 QString 转换为 Ascii 值,反之亦然 的相关文章

随机推荐