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

【Qt】使用QString的toLocal8Bit()导致的问题

问题

使用Qt发送一个Http post请求的时候,服务一直返回错误和失败信息。同样的url以及post参数,复制黏贴到postman里就可以发送成功。就感觉很神奇。

原因

最后排查出原因是因为参数中含有汉字而导致的编码问题。

在拼接post参数时,使用了toLocal8Bit()来将QString转为QByteArray。而toLocal8Bit(),会将QString对象转换为本地8位字符集编码的QByteArray对象。根据不同平台,可能转换的编码方式不同,在中文Windows系统中,toLocal8Bit()会将QString对象转换为GB2312编码的QByteArray对象。因为服务部署在Linux环境下,所以应该是这里导致的问题。

解决

改为使用QJsonDocument组织json字符串,调用它的toJson()接口,直接转换成QByteArray,默认是Utf-8编码的。

或者另一种方式是,直接将拼接的字符串,调用toUtf8()接口,应该也是可以的。


http://www.kler.cn/a/401677.html

相关文章:

  • 【支持向量机(SVM)】:相关概念及API使用
  • 25.UE5时间膨胀,慢动作,切换地图,刷BOSS
  • Android集成FCM(Firebace Cloud Messaging )
  • 【嵌入式】关于push老仓库到新仓库的方法
  • 计算机网络-理论部分(二):应用层
  • hadoop3.x 新特性
  • 【Linux学习】【Ubuntu入门】1-6 ubuntu文件系统结构
  • 使用 Elasticsearch 构建食谱搜索(二)
  • 微信小程序申请getlocation权限
  • 【视频讲解】Python深度神经网络DNNs-K-Means(K-均值)聚类方法在MNIST等数据可视化对比分析...
  • 同向双指针
  • Excel如何把两列数据合并成一列,4种方法
  • 微信小程序 https://thirdwx.qlogo.cn 不在以下 downloadFile 合法域名列表中
  • 自动化仪表故障排除法
  • Ubuntu 系统下,如何清空 swap 分区
  • Swift 宏(Macro)入门趣谈(四)
  • 数据结构(一)链表
  • 【Unity基础】对比Unity中两种粒子系统
  • ubuntu系统中使用docker-compose安装部署docker集群(本地)
  • 聚焦 NLP 和生成式 AI 的创新与未来 基础前置知识点
  • 多目标优化算法:多目标鳗鱼和石斑鱼优化算法(MOEGO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6,提供完整MATLAB代码
  • vue2+a-table——实现框选选中功能——js技能提升
  • 探索PyMuPDF:Python中的强大PDF处理库
  • 结构体位段+联合和枚举
  • Object.prototype.hasOwnProperty.call(item, key) 作用与用途
  • 2.5D视觉——Aruco码定位检测