将 UTF-16 QByteArray 转换为 QString

Ahm*_*med 5 unicode qt

我有一个包含 UTF-16 格式字节的 QByteArray。

Java 程序使用套接字通过套接字向 QT 程序发送数据

//dos is DataOutPutStream
dos.writeChars("hello world");
Run Code Online (Sandbox Code Playgroud)

在 QT 程序的接收端,我将套接字中的数据读取到 QByteArray 中,我想将其转换为 QString。检查 QByteArray 的数据变量,它有 0h0e0l0l0o0 0w0o0r0l0d

当我尝试像这样制作 QString 时

QString str(byteArray)
Run Code Online (Sandbox Code Playgroud)

结果字符串是空的,可能是因为它在开头遇到了一个 0 字节,当然因为我使用的构造函数的文档说它在内部使用 fromAscii 而我传递的不是 ascii。

我想我必须以某种方式使用 QString::fromUTF-16 但这需要一个 ushort* 并且我有一个 QbyteArray。

请告知最好的方法是什么。

谢谢,

Mar*_*ett 4

获取指向QByteArray.data() 的指针 并将其转换为 ushort*