QT windows与linux之间sokcet通信中文乱码问题解决方法

linux发送与接收都转码utf-8:

tcpClient ->write( send_msg.toUtf8());//解决乱码,发送转码

 

 

接收:

QByteArray buffer = tcpClient->readAll();
if(!buffer.isEmpty())
{
// ui->plainTextEdit_Recv_Msg->appendPlainText(str_time+" "+QString::fromLocal8Bit(buffer));
ui->plainTextEdit_Recv_Msg->appendPlainText(str_time+" "+QString::fromUtf8(buffer)); //linux 读取数据,接收转码

}

windows发送与接收都转码utf-8:

 

linux接收:

复制代码
void Dialog_debug::slot_readData()
{
    QDateTime current_time=QDateTime::currentDateTime();
   // QString str_time=current_time.toString("yyyy-MM-dd hh:mm:ss.zzz ddd");//ddd--周五,zzz毫秒
    QString str_time=current_time.toString("yyyy-MM-dd hh:mm:ss");//ddd--周五,zzz毫秒
    QByteArray buffer = tcpClient->readAll();
    if(!buffer.isEmpty())
    {
       // ui->plainTextEdit_Recv_Msg->appendPlainText(str_time+" "+QString::fromLocal8Bit(buffer));
        ui->plainTextEdit_Recv_Msg->appendPlainText(str_time+" "+QString::fromUtf8(buffer)); //linux 读取数据

    }
}
复制代码

 

windows发送:

复制代码
void Server::on_pushButton_Send_clicked()
{
    if(ui->listWidget_IP->selectedItems().length()>0)
    {
        foreach(QListWidgetItem* item, ui->listWidget_IP->selectedItems())
        {
            QString clientIP=item->text().split(":")[0];
            int clientPort=item->text().split(":")[1].toInt();
            for(int i=0;i<tcpClients.length();i++)
            {
                if(tcpClients[i]->peerAddress().toString()==clientIP &&tcpClients[i]->peerPort()==clientPort)
                {
                    tcpClients[i]->write(ui->plainTextEdit_Send_Msg->toPlainText().toUtf8());//windows与linux之间数据传送
                   //  tcpClients[i]->write(ui->plainTextEdit_Send_Msg->toPlainText().toLocal8Bit());////fromLocal8Bit显示中文,解决乱码,windows之间
                     ui->plainTextEdit_Recv_Msg->appendPlainText(GetCurrentTimeStr()+" 发送:"+ui->plainTextEdit_Send_Msg->toPlainText());
                }
            }

        }
    }
    else
    {
        QMessageBox::information(this,"提示","IP列表未选择");
    }



}
复制代码

 

 

posted @   txwtech  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2022-11-14 c# 字典dictionary 1个key键对应多个值得方法-MultiDictionary
点击右上角即可分享
微信分享提示