【问题标题】:QByteArray conversion from text从文本转换 QByteArray
【发布时间】:2019-11-11 17:21:50
【问题描述】:

我有一个文本编辑器,我在其中键入十六进制数字,然后将此文本转换为 QByteArray。

这是我的代码:

QByteArray parsedValue = QByteArray::fromHex(expectedPacketStr.toUtf8());
qDebug() << parsedValue;

当我将其设置为 001102 时, 然后控制台日志报告 "\x00\x11\x02" 这是我所期望的。

但如果我将其设置为 001122, 控制台日志报告 "\x00\x11\"" 缺少 x22 字节。

我真的无法理解发生了什么。有人知道为什么会这样吗???

【问题讨论】:

  • 请注意,十六进制值 22 是引号字符的 ASCII 值。第三个字节没有丢失,只是显示为\”

标签: c++ qt qbytearray


【解决方案1】:

0x22 是 ascii 中的字符 ",所以它只是 qDebug() 解释它,QByteArray 内部没有任何遗漏。

为了说服你,你总是可以一个一个地显示数组:

for (auto b : parsedValue)
    qDebug() << (int)b;

【讨论】:

    猜你喜欢
    • 2014-04-24
    • 1970-01-01
    • 2016-05-14
    • 2016-11-04
    • 2020-09-18
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多