QJsonObject obj; obj["type"]=3; QJsonDocument doc(obj); QString str=doc.toJson(); qDebug() << str; tcp_socket->write((str.toUtf8()));接受消息时有未知字符 qDebug() << str.toUtf8();
时间: 2024-04-08 17:32:53 浏览: 98
OpenGL读取3D obj文件进行三角拆分-动漫女孩
5星 · 资源好评率100%
从您提供的代码来看,您正在使用Qt的TCP套接字发送JSON数据。未知字符可能是由于编码问题导致的。
首先,确保客户端和服务器端使用相同的编码格式。通常情况下,UTF-8是一个常用的选择。
其次,检查接收方是否正确解析了接收到的数据。您可以使用Wireshark等网络抓包工具来查看实际发送的数据内容,以确定是否存在编码问题。
另外,您可以尝试在发送数据之前进行编码转换,以确保数据以正确的编码格式发送。例如,您可以使用`QTextCodec`类进行编码转换。以下是一个示例:
```cpp
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QByteArray encodedData = codec->fromUnicode(str);
tcp_socket->write(encodedData);
```
请尝试上述方法,并在遇到问题时提供更多细节,以便我能够更好地帮助您解决问题。
阅读全文