当前位置: 首页 > news >正文

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

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列表未选择");}}

相关文章:

  • go学习之接口知识
  • 【ArcGIS Pro微课1000例】0031:las点云提取(根据范围裁剪点云)
  • 前、后端程序员开发常用api接口
  • SpringBoot 项目优雅实现读写分离 | 京东云技术团队
  • CTFhub-RCE-远程包含
  • Git企业开发级讲解(二)
  • 【uniapp】确认弹出框,选择确定和取消
  • File Upload
  • 深入理解 Spring Boot 内置工具类:ReflectionUtils
  • GPT 写作与改编
  • RabbitMQ 系列教程
  • ChatGPT重磅升级 奢侈品VERTU推出双模型AI手机
  • Android 12 S 系统开机流程分析 - SecondStageMain(三)
  • 一封来自未来的offer
  • Vite探索:构建、启程、原理、CSS艺术与插件魔法
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 3.7、@ResponseBody 和 @RestController
  • Angular4 模板式表单用法以及验证
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • codis proxy处理流程
  • E-HPC支持多队列管理和自动伸缩
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • ES6核心特性
  • gcc介绍及安装
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • October CMS - 快速入门 9 Images And Galleries
  • PHP 7 修改了什么呢 -- 2
  • Puppeteer:浏览器控制器
  • SAP云平台里Global Account和Sub Account的关系
  • Spring-boot 启动时碰到的错误
  • SwizzleMethod 黑魔法
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 仿天猫超市收藏抛物线动画工具库
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 原生 js 实现移动端 Touch 滑动反弹
  • 数据可视化之下发图实践
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #、%和$符号在OGNL表达式中经常出现
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)Mysql的优化设置
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core 项目指定SDK版本
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • @Bean, @Component, @Configuration简析
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @EnableWebMvc介绍和使用详细demo
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [22]. 括号生成
  • [AHOI2009]中国象棋 DP,递推,组合数