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


    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接收:

    1. void Dialog_debug::slot_readData()
    2. {
    3. QDateTime current_time=QDateTime::currentDateTime();
    4. // QString str_time=current_time.toString("yyyy-MM-dd hh:mm:ss.zzz ddd");//ddd--周五,zzz毫秒
    5. QString str_time=current_time.toString("yyyy-MM-dd hh:mm:ss");//ddd--周五,zzz毫秒
    6. QByteArray buffer = tcpClient->readAll();
    7. if(!buffer.isEmpty())
    8. {
    9. // ui->plainTextEdit_Recv_Msg->appendPlainText(str_time+" "+QString::fromLocal8Bit(buffer));
    10. ui->plainTextEdit_Recv_Msg->appendPlainText(str_time+" "+QString::fromUtf8(buffer)); //linux 读取数据
    11. }
    12. }

    windows发送:

    1. void Server::on_pushButton_Send_clicked()
    2. {
    3. if(ui->listWidget_IP->selectedItems().length()>0)
    4. {
    5. foreach(QListWidgetItem* item, ui->listWidget_IP->selectedItems())
    6. {
    7. QString clientIP=item->text().split(":")[0];
    8. int clientPort=item->text().split(":")[1].toInt();
    9. for(int i=0;i<tcpClients.length();i++)
    10. {
    11. if(tcpClients[i]->peerAddress().toString()==clientIP &&tcpClients[i]->peerPort()==clientPort)
    12. {
    13. tcpClients[i]->write(ui->plainTextEdit_Send_Msg->toPlainText().toUtf8());//windows与linux之间数据传送
    14. // tcpClients[i]->write(ui->plainTextEdit_Send_Msg->toPlainText().toLocal8Bit());fromLocal8Bit显示中文,解决乱码,windows之间
    15. ui->plainTextEdit_Recv_Msg->appendPlainText(GetCurrentTimeStr()+" 发送:"+ui->plainTextEdit_Send_Msg->toPlainText());
    16. }
    17. }
    18. }
    19. }
    20. else
    21. {
    22. QMessageBox::information(this,"提示","IP列表未选择");
    23. }
    24. }

  • 相关阅读:
    Go 小知识之 Go 中如何使用 set
    深度学习项目:火灾烟雾监测【附完整源码】
    SpringSecurity(二十一)--OAuth2:实现资源服务器(中)实现带有JdbcTokenStore的黑板模式
    人工智能行业源代码防数据防泄密需求分析
    TS封装小程序wx.showModal弹窗及调用
    C++ STL 容器简单讲解
    Halo搭建个人博客网站
    Springboot项目log4j与logback的Jar包冲突问题
    char 和 varcahr的区别(面试题)
    进度条小程序
  • 原文地址:https://blog.csdn.net/txwtech/article/details/134395549