QT4-QT5升级(4)GBK-UTF-8-乱码-QT工程构建的区别

news2024/11/29 12:48:30

文件编码为UTF-8
QString 正常
char*    中文乱码

解决方法:

 

#include <iostream>
#include <QString>
#include <QTextCodec>

int main()
{
    QString qstr = "你好,世界!"; // 中文字符串
    
    // 获取 GBK 编码的 QTextCodec
    QTextCodec *codec = QTextCodec::codecForName("GBK");
    
    // 将 QString 转换为 GBK 编码的 QByteArray
    QByteArray gbkData = codec->fromUnicode(qstr);
    
    // 使用 constData() 方法获取 const char* 指针
    const char* charData = gbkData.constData();
    
    std::cout << "Converted const char* (GBK): " << charData << std::endl;

    return 0;
}

QString转const char* GBK编码
实现上述功能有2种方法:
1.直接用转换:无异常

2.用函数封装,debug会出现"字符串无效"

函数封装:QString转const char* GBK编码
Q2C_GBK
QString          都是正常编码
const char*
debug 时显示无法

 #include <QTextCodec>
//编码文件:      UTF-8      
//字符格式转换: 输入QString  
//输出: const char*  
//debug 时显示"字符串无效"
const char* Q2C_GBK(QString qstr)
{
	QTextCodec* codec = QTextCodec::codecForName("GBK");
	QByteArray gbkData = codec->fromUnicode(qstr);// 将 QString 转换为 GBK 编码的 QByteArray
	//const char* charData = gbkData.constData();
	return gbkData.constData();

}

QString qstr0 = "操作配置";
	QTextCodec* codec0 = QTextCodec::codecForName("GBK");	
	QByteArray gbkData0 = codec0->fromUnicode(qstr0);// 将 QString 转换为 GBK 编码的 QByteArray
	const char* charData0 = gbkData0.constData();// 使用 constData() 方法获取 const char* 指针*/

	QString qstr = "自动保存文件间隔";
	QTextCodec* codec = QTextCodec::codecForName("GBK");
	QByteArray gbkData = codec->fromUnicode(qstr);// 将 QString 转换为 GBK 编码的 QByteArray
	const char* charData = gbkData.constData();// 使用 constData() 方法获取 const char* 指针*/
	m_btw = proFile.getInt(charData0, charData, 1);

	QString qstr1 = "操作配置";
	const char* charData1 = Q2C_GBK(qstr1);
	QString qstr2 = "每日note";
	const char* charData2 = Q2C_GBK(qstr2);//只要用函数
	m_btw = proFile.getInt(Q2C_GBK(qstr1), Q2C_GBK(qstr2), 1);
	m_btw = proFile.getInt(charData1, charData2, 1);





 

QT工程构建的区别
 

构建方式:
用到QT库在VS里有2种构建方式
一种属性配置法:属性->配置
一种QT转换法:Qt ->convert
1.属性配置法:
1.VC++目录


2.

3.


把所有库载进去编译通过

2.QT转换法:


实际工程中用哪种要自己试。
我在转换时就出现了如下的问题:
sacnet用QT转换法会出现:

sacnet用配置法就不会出现:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1847937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

异步开发的终极答案—协程

我们在之前的文章中讲过,在并发场景下,传统的基于多线程的命令式开发模型虽然比较简单,但并发数高了之后资源占用较高,大量线程会阻塞;而响应式编程模式我们可以通过异步化处理提升系统资源的利用效率,但异步开发有违人的直觉,门槛比较高。作为成年人,我们肯定希望全都…

Echarts 社区分享

​ 首页先确定你要使用的Echarts版本&#xff0c;因为现在Echarts5以上版本引入地图与之前版本有所不同。但是大多数地图不太容易搞分享一些比较好用的ECharts社区网站。 1、makeapie 网址&#xff1a;makeapie 2、isqqw 网址&#xff1a;echarts图表集 3、PPchart 网址…

生产管理系统看板,在自动化设备领域的创新应用

在自动化设备领域&#xff0c;生产管理系统看板的创新应用是一项引人注目的技术进步。以广州某自动化设备有限公司为例&#xff0c;他们是一家涂装工程设备制造企业&#xff0c;将讯鹏生产管理系统电子看板成功应用于全自动立式静电喷粉线、卧式静电喷粉线、氟碳喷涂生产线等领…

VMware连接XShell保姆教程

打开虚拟机后进入终端在终端中 1.配置静态IP 在终端中输入 ifconfig回车&#xff0c; 注意这里需要记住这个IP每个电脑的都不一样 在输入ip addr 2.接着输入cd /etc/sysconfig/network-scripts/进入配置网络文件夹 3.通过Vim编辑器编辑内容 vim ifconfig-ens33 进入界面…

小阿轩yx-MySQL数据库初体验

小阿轩yx-MySQL数据库初体验 数据库简介 21 世纪迈入了“信息爆炸时代”&#xff0c;大量的数据、信息在不断产生&#xff0c;伴随而来的就是如何安全、有效地存储、检索和管理它们。 对数据的有效存储、高效访问、方便共享和安全控制已经成为信息时代亟待解决的问题。 使用…

R语言——R语言基础

1、用repeat、for、while计算从1-10的所有整数的平方和 2、编写一个函数&#xff0c;给出两个正整数&#xff0c;计算他们的最小公倍数 3、编写一个函数&#xff0c;让用户输入姓名、年龄&#xff0c;得出他明年的年龄。用paste打印出来。例如&#xff1a;"Hi xiaoming …

域内攻击手法——域内用户枚举和密码喷洒

一、域内用户枚举 1、域内用户枚举原理 域内用户枚举可以在无域内有效凭据的情况下&#xff0c;枚举出域内存在的用户名&#xff0c;并对其进行密码喷洒攻击&#xff0c;以此获得域内的有效凭据&#xff0c;在 Kerberos 协议认证的 AS-REQ 阶段&#xff0c;客户端向 AS 发送的…

windows本地运行LLama3中文版

先到官网下载LM Studio 网址&#xff1a;LM Studio - Discover, download, and run local LLMs 下载完成后&#xff0c;直接点击运行。在页面搜索栏输入&#xff1a;llama3 chines 然后收获了如下错误信息&#xff1a;network error&#xff0c;怎么办&#xff1f;请转如下链接…

AI绘画-Stable Diffusion三次元人物模型训练(炼丹)教程,你也可以定制你的三上youya老师!

大家好&#xff0c;我是设计师阿威 &#xff08;Stable diffusion生成的三上youya老师&#xff09; 用AI进行画出不同人物&#xff0c;我们需要训练自己Lora模型。除了训练二次元人物之外&#xff0c;也常常要训练三次元人物。 比如福利姬老师可以训练自己然后穿上各种美美的…

The Sandbox 购入几大迷因币!

The Sandbox 是一个致力于支持虚拟艺术家和创作者的全球性社区。我们相信创意文化是开放式元宇宙的基石&#xff0c;我们会花时间参与并帮助 Web3 生态系统的发展&#xff0c;使其中的参与者受益。 为了进一步实现这一目标&#xff0c;我们购买了几种流行的 迷因币&#xff0c;…

【大模型驯化-Prompt】企业级大模型Prompt调试技巧与batch批量调用方法

【大模型驯化-Prompt】企业级大模型Prompt调试技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的博客个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#x…

『FPGA通信接口』LVDS接口(4)LVDS接收端设计

文章目录 1.LVDS接收端概述2逻辑框图3.xapp855训练代码解读4.接收端发送端联调5.传送门 1.LVDS接收端概述 接收端的传输模型各个属性应该与LVDS发送端各属性一致&#xff0c;例如&#xff0c;如果用于接收CMOS图像传感器的图像数据&#xff0c;则接收端程序的串化因子、通道个…

批量推送邮件如何高效实现?邮件推送技巧?

批量推送邮件有哪些注意事项&#xff1f;如何优化邮件推送效果&#xff1f; 无论是市场营销、客户服务还是内部沟通&#xff0c;批量推送邮件都发挥着关键作用。然而&#xff0c;如何高效实现批量推送邮件却是一个需要深思的问题。AokSend将探讨一些提高批量推送邮件效率的方法…

C++ GPU编程(英伟达CUDA)

安装编译环境 https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.85_windows.exe CMakeLists.txt cmake_minimum_required(VERSION 3.10)set(CMAKE_CXX_STANDARD 17) set(CMAKE_BUILD_TYPE Release) #set(CMAKE_CUDA_ARCHITECTUR…

手写方法实现字符串例如:“123“与整型例如:123相互转化(面试必会)

目录 二、字符串类型转化为整型 1. 初始化变量 2.定义字符串索引值 3.思考如何将字符1转化为数字1 4. 转化思路 5.考虑字符串转化负数例&#xff1a;-123456 6.完整代码 四、最后 一、前言 在c语言和c中&#xff0c;有许许多多的数据类型相互转化的方法&#xff0c;这里…

CARIS HIPS and SIPSv12 是专业的多波束水深数据和声呐图像处理软件

CARIS HIPS and SIPS是专业的多波束水深数据和声呐图像处理软件。CARIS HIPS and SIPS适用于海洋应用需求。其可靠性和可用性对多波束水深数据处理和声呐图像都是很重要的。CARIS HIPS用于处理多波束水深数据&#xff0c;CARIS SIPS用于处理侧扫声呐图像和多波束背向散射回波数…

卫星智慧停车导航系统有哪些优势

卫星智慧停车导航系统凭借其先进的技术和创新的理念&#xff0c;为现代城市停车问题提供了有效的解决方案。以下是卫星智慧停车导航系统的主要优势&#xff1a; 一、实时性与准确性 卫星智慧停车导航系统通过集成全球卫星定位系统(GPS)和地理信息系统(GIS)&#xff0c;能够实时…

Redis 持久化策略

Redis 提供了多种持久化机制&#xff0c;用于将数据保存到磁盘中&#xff0c;以防止因服务器重启或故障而导致的数据丢失。主要的持久化策略有两种&#xff1a;RDB (Redis Database) 和 AOF (Append Only File)&#xff0c;即当 Redis 服务器重新启动时&#xff0c;会读取相应的…

自研地面站!自主开源无人飞行系统 Prometheus V2 版重大升级详解

自主开源无人飞行系统 Prometheus V2 相对于 Prometheus V1 在多方面做了重大的升级&#xff0c;今天我们将聊聊 Prometheus V2 的地面站升级。 地面站的重大提升 熟悉 Prometheus 的小伙伴们可能知道&#xff0c;V1 版本是没有专门的地面站的。而在 Prometheus V2 中&#x…

【MAVEN学习 | 第2篇】Maven工程创建及核心功能

文章目录 一. 基于IDEA的Maven工程创建1.1 Maven工程GAVP属性&#xff08;1&#xff09;GroupID 格式&#xff08;2&#xff09;ArtifactID 格式&#xff08;3&#xff09;Version版本号格式&#xff08;4&#xff09;Packaging定义规则 1.2 IDEA构建Maven JavaSE工程1.3 IDEA构…