找回密码
 立即注册
收起左侧

udp socket 通信 中文乱码问题

2
回复
5891
查看
[复制链接]

尚未签到

来源: 2015-5-3 22:28:14 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 simple 于 2015-5-3 22:29 编辑

udp通信,接收的数字和字母可以正常显示,汉字都显示为问号?小白求解,求高手解答

发送端是用java写的,代码如下:
  1. DatagramSocket dgSocket;
  2. dgSocket = new DatagramSocket();
  3. byte b[]=msgTosend.getBytes("utf-8");  
  4. DatagramPacket dgPacket;
  5. dgPacket = new DatagramPacket(b,b.length,InetAddress.getByName("255.255.255.255"),54321);
  6. dgSocket.send(dgPacket);
复制代码
接收端是基于QT的,接收代码如下:
  1. QByteArray messageRve;
  2. messageRve.resize(udp_socket->pendingDatagramSize());
  3. udp_socket->readDatagram(messageRve.data(),6,&hostAddress_tmp,&revPort);
  4. qDebug()<<"接收到的广播数据是:"<<messageRve;
复制代码
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2015-5-4 09:15:49 显示全部楼层
你要看自己发送的汉字什么字符集,一般情况下,发送的汉字直接写在代码里的,QT5默认是UTF-8,但是字符集可以修改。。

还有就是程序启动后,发送的是  输入的汉字  应该是 系统的字符集。。。

点评

哥,按照你的意思,,如果是要用"输入的方式发送汉字",不写在程序里,那用的是系统的字符集,,,我怎么设置生成UTF-8的字符集  详情 回复 发表于 2015-6-14 20:02
回复 支持 反对

使用道具 举报

累计签到:615 天
连续签到:1 天
2015-6-14 20:02:53 显示全部楼层
a408815041 发表于 2015-5-4 09:15
你要看自己发送的汉字什么字符集,一般情况下,发送的汉字直接写在代码里的,QT5默认是UTF-8,但是字符集可 ...

哥,按照你的意思,,如果是要用"输入的方式发送汉字",不写在程序里,那用的是系统的字符集,,,我怎么设置生成UTF-8的字符集
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了