【引用】Qt中发送与接收信息的编码转换
2013-08-01 14:58
211 查看
大家可能发现了,如果用TCP或者UDP协议发送汉字时,在接收端显示的却是问号的形式。这是因为编码的不同:
在发送数据时,首先要做的代码如下:
QByteArray text = 发送的信息(QString).toLocal8Bit();
然后在发送的时候,直接发送即可,如:
tcpSocket -> write(text,text.length);
在接收数据时,首先要定义一个QByteArray类型的成员,用该成员来保存所要接收的信息,如:
QByteArray datagram;
datagram.resize(tcpSocket->bytesAvailabel());
tcpSocket->read(datagram.data(),datagram.size());
显示的时候,只做以下的编码转换:
QString msg = QString::fromLocal8Bit(datagram.data());
后直接显示msg里面的信息即可。
PS:
在编程时,如果发现接收的信息或者发送的信息与要转换的信息的类型不一样,可以对其类型进行转换,具体转换方法在上一篇里面有介绍。
在发送数据时,首先要做的代码如下:
QByteArray text = 发送的信息(QString).toLocal8Bit();
然后在发送的时候,直接发送即可,如:
tcpSocket -> write(text,text.length);
在接收数据时,首先要定义一个QByteArray类型的成员,用该成员来保存所要接收的信息,如:
QByteArray datagram;
datagram.resize(tcpSocket->bytesAvailabel());
tcpSocket->read(datagram.data(),datagram.size());
显示的时候,只做以下的编码转换:
QString msg = QString::fromLocal8Bit(datagram.data());
后直接显示msg里面的信息即可。
PS:
在编程时,如果发现接收的信息或者发送的信息与要转换的信息的类型不一样,可以对其类型进行转换,具体转换方法在上一篇里面有介绍。
相关文章推荐
- iOS多线程与网络开发之发送接收server信息
- js通过ajax发送header信息php接收
- angularJS实现聊天窗口中发送和接收信息时,将聊天记录窗口滑动条实时滑至底部
- [QT开发]网络编程中,发送请求成功,无法接收回信
- java Udp实现简单地发送接收信息
- iOS多线程与网络开发之发送接收服务器信息
- linux下基于udp的简单的接收与发送程序,开发板与本机接收与发送信息
- Java TCP/IP之UDP 套接字发送和接收信息
- 【Y忍冬草】Qt之客户端实现数据的接收和发送
- [疯狂Java]UDP:接收发送数据报、获取接收到的数据报的相关信息
- C#引用c++DLL结构体数组注意事项(数据发送与接收时)
- java通过post方式发送接收xml信息
- Qt实用技巧:基于tcp的C/S构架多人聊天程序(在线、离线、离线信息再次登录后发送等)
- socket 发送信息和接收信息 多用于银行通信
- 手机qq无法接收和发送信息,个人解决方法lin49940
- Linux发送与接收信息
- 《飞鸽传书下载》发送和接收信息
- QT tcpsocket 发送/接收数据
- QTcpSocket 发送和接收数据的几种方法
- Ajax兼容处理+发送请求+接收返回信息