【发布时间】:2012-06-24 13:05:52
【问题描述】:
我正在使用 Qt 为我的公司开发一个协议。需要查询 Window Registry 并将获得的值写入预先协商的套接字中。我已将注册表数据读入QString。我必须使用 8 位 Unicode 字符和一些 16 位 Unicode 字符。在使用QTcpSocket::write() 写入套接字之前,我使用QByteArray 存储所有数据。必须遵循 Little Endianness。
如何将
QString中的数据以Unicode 8位格式转换为QByteArray(规范说字符类型对应quint8)?如何将
QString中的数据以Unicode 16位格式(规范说字符类型对应quint16)转换为QByteArray?如何在所有情况下都保持 Little Endianness?
(我没有处理 Unicode/可变字节编码数据的经验)
【问题讨论】:
-
没有 8 位或 16 位 Unicode 字符。 Unicode 是 21 位代码。您是否参考了 UTF-8 和 UTF-16(它们使用 8 位或 16 位代码 units 来表示 Unicode code points)?
-
@Joey 也许这就是规范的意思(你写的),但这就是它所说的方式(我写的)。照你说的做就是必须的,我该怎么做?
-
@ustulation 两者都比不回答问题更可取。
标签: c++ qt encoding windows-xp utf