Qt中使用TCP实现中文通信

本文介绍了在Qt5中使用TCP协议实现中文通信的过程,包括客户端和服务端的修改,解决了发送长度导致的乱码问题。通过将toLatin1()替换为toUtf8()进行编码,并使用msg.toUtf8().length()+1作为发送长度,成功实现了中文的正确传输。

Qt中使用TCP实现中文通信

《Qt5开发及实例》一书中,第十章有TCP的通信实例——聊天室的服务端和客户端,但是用户名和通信内容只能是英文,由此我进行了改进。

客户端

首先是客户端,客户端需要改三处。

发送的槽函数

void TcpClient::slotSend()
{
   
   
    if(sendLineEdit->text()=="")
    {
   
   
        return ;
    }

    QString msg=userName+":"+sendLineEdit->text();
    //tcpSocket->write(msg.toLatin1(),(msg.length()));
    tcpSocket->write(msg.toUtf8(),(msg.toUtf8().length()+1));
    sendLineEdit->
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值