【发布时间】:2019-07-25 20:18:08
【问题描述】:
我有一个 qsqlite,它有一列包含原始数据。
代码
QByteArray data= query.value("data").toString().toLatin1();
或
QByteArray data= query.value("data").toByteArray();
给出完全相同的结果,除了某些值之外是正确的。原始数据 ara 中的某些字节被转换为 0x3F。 (我认为值大于某个值)
下面的代码给出了超出实际数据的结果。
data= query.value("data").toString().toUtf8()
我错过了什么?
--- 编辑(已添加示例数据)
sqlite 中的真实原始数据:
01 a4 81 1c 20 02 00 ff
query.value("data").toString().toByteArray()
给予:
01 a4 81 1c 20 02 00 3f
query.value("data").toString().toUtf8()
给予:
01 c2 a4 c2 81 1c 20 02 00 ef bf bd
顺便说一下,我说的原始数据类型是sqlite数据库中的BLOB。
【问题讨论】:
-
你是什么意思,"下面的代码给出了一个超出真实数据的结果。"。请添加minimal reproducible example。
-
我已经添加了示例。
-
query.value("data").toByteArray()产生什么?
标签: c++ qt sqlite qstring qbytearray