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

[Qt] QString::fromLocal8Bit 的使用误区

QString::fromLocal8Bit 是一个平台相关的函数。默认情况下在 Windows 下 就是 gbk 转 utf-8 ,在 Linux就应该是无事发生。因为Linux平台默认的编码方式就是 utf-8
可以通过

void QTextCodec::setCodecForLocale(QTextCodec *c)

来修改 Qt默认的编码方式。如下
在这里插入图片描述
第一输出乱码的原因是, “小明” 是以 gbk进行编码的,但是 QString是 utf-8编码的。使用QString就会使用 utf-8进行解码。这样就会导致乱码。第二行不乱码是因为 默认情况 QString QString::fromLocal8Bit(const QByteArray &str) 下就是 gbk 转 utf-8 。但是如果我们显示的设置Qt的默认编码方式

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

在这里插入图片描述
就会发现又乱码了,这是因为Qt会认为 “小明” 是 utf-8编码的所以不会进行转换,但是实际上 “小明”是gbk编码的。

QTextCodec

QTextCodec 算得上是一个特殊的类,因为它的构造函数和析构函数都是保护函数,所以你不能够new一个QTextCodec对象出来。
在这里插入图片描述

http://www.lryc.cn/news/326613.html

相关文章:

  • 什么是RabbitMQ的死信队列
  • 力扣面试150 删除有序数组中的重复项 双指针
  • 政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(二)—— 深度神经网络
  • 【链表】Leetcode 138. 随机链表的复制【中等】
  • 【计算机网络教程】(第六版)第2章课后习题答案
  • 抖音电商“达人客服”产品上线啦!超多作者邀你一起“321上客服”!
  • 华为防火墙二层墙(VAN/SVI/单臂路由)
  • idea使用git笔记
  • 智慧校园数据可视化有什么好处?怎么推进数字化校园方案?
  • 如何利用python编写函数fn(a,n)求数列和
  • django orm DateTimeField 6位小数精度问题
  • JVM(六)——内存模型与高效并发
  • C++:关键字(4)
  • STM32串口收发单字节数据原理及程序实现
  • openGauss + Datakit搭建openGauss运维平台
  • 【疑惑】-谷歌是如何获取数据的
  • Java static和继承
  • 亲身体验!人工智能对话无障碍 —— BRClient 使用指南
  • 【数据库管理操作】Mysql 创建学生数据库及对数据表进行修改
  • vue2 export default写法,computed、methods的使用
  • 负氧离子监测站:创造健康生活环境
  • 【jvm】young gc full gc
  • 2024年腾讯云服务器租用价格_轻量和CVM报价
  • 【go从入门到精通】for循环控制
  • <chrono>, clock_gettime(), gettimeofday()对比
  • 基于 YAML 接口自动化测试框架设计
  • 团体程序设计天梯赛 L2-031 深入虎穴
  • 基于Givens旋转完成QR分解进而求解实矩阵的逆矩阵
  • 学习使用xbox手柄控制小乌龟节点移动
  • OpenLayers6实战,OpenLayers绘制特殊图形,OpenLayers绘制四角形(菱形),OpenLayers绘制菱形