我有一个QByteArray,其中包含UTF-16格式的字节。
一个Java程序通过套接字向QT程序发送数据,使用的是
//dos is DataOutPutStream
dos.writeChars("hello world");
在QT程序的接收端,我将数据从套接字中读取到QByteArray中,并希望将其转换为QString。检查QByteArray的数据变量时,它显示为0h0e0l0l0o0 0w0o0r0l0d。
当我尝试像这样制作一个QString时:
QString str(byteArray)
结果字符串为空,可能是因为在开头遇到了0字节,当然也可能是因为我正在使用的构造函数的文档说明它内部使用fromAscii,并且我传递的不是ascii。
我想我必须以某种方式使用QString::fromUTF-16,但这需要一个ushort*,而我有一个QbyteArray。
请建议最佳方法。
谢谢。
ntohs(uint16_t net)
- 你可能需要包含网络头文件,我不记得是否有一个qt函数可以实现它。 - Martin Beckett