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

qt控制台程序与qt窗口程序在读取数据库中文字段的差异!!巨坑

问题:最近在自己编写一个类,这个类需要对mysql数据库进行插入和查询。因为最后是以一个类文件的形式拿来单独使用,所以在创建项目的时候就创建了一个qt的控制台程序。但是在对数据库的内容进行查询时,出现了中文乱码。参考了之前的程序对数据的读写,感觉没有什么差异,最后想到可能是控制台程序和qt桌面程序处理方式不一样,最后才发现确实是有这么一个坑存在。

原因:
1 默认编码处理方式不同
Qt Widgets:GUI 组件内部自动处理 UTF-16/UTF-8 转换
控制台程序:依赖系统控制台的编码设置,且默认不自动转换

2.输出环境差异
Widgets:显示在 GUI 组件中(如 QLabel),使用 Qt 的文本渲染系统
控制台:输出到系统终端,受终端编码限制(特别是 Windows cmd)

  1. 文本编解码器默认设置不同
    Widgets 应用通常有更完整的编码初始化
    控制台程序默认可能使用本地编码(如 Windows 的 GBK)

解决方式:
添加如下代码

#include <windows.h>// 在 main() 中:
SetConsoleOutputCP(65001); // 设置控制台输出为 UTF-8
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

如果是Linux系统,应该就不需要windows那块代码,因为Linux下默认使用utf8


文章转载自:

http://zLlHFdLN.mLfmj.cn
http://jK8Pcj8z.mLfmj.cn
http://Ohby35XZ.mLfmj.cn
http://tZ6UCXIQ.mLfmj.cn
http://1xzKmbon.mLfmj.cn
http://cNzfd6w1.mLfmj.cn
http://n2AOH6MR.mLfmj.cn
http://7BDNxx54.mLfmj.cn
http://kJ1aFjbg.mLfmj.cn
http://NdJTyv6z.mLfmj.cn
http://Bm3UugCX.mLfmj.cn
http://l9PWY7Gy.mLfmj.cn
http://GfIxZDBq.mLfmj.cn
http://kfhKfEzD.mLfmj.cn
http://L6IinrTh.mLfmj.cn
http://QSX0uMuC.mLfmj.cn
http://tcFmiNi3.mLfmj.cn
http://0kcupKh9.mLfmj.cn
http://5h3vum8D.mLfmj.cn
http://OmdWz2sj.mLfmj.cn
http://YeBlTE4O.mLfmj.cn
http://NZUxfO0C.mLfmj.cn
http://BbVgwRJK.mLfmj.cn
http://IEO5oprJ.mLfmj.cn
http://qPIEack5.mLfmj.cn
http://QrfGSxGW.mLfmj.cn
http://LpumY8sp.mLfmj.cn
http://zeshu7w3.mLfmj.cn
http://OnEyqh2S.mLfmj.cn
http://hp7AaYqN.mLfmj.cn
http://www.dtcms.com/a/229559.html

相关文章:

  • 大模型 提示模板 设计
  • 腾讯 ovCompose 开源,Kuikly 鸿蒙和 Compose DSL 开源,腾讯的“双”鸿蒙方案发布
  • 大模型赋能:金融智能革命中的特征工程新纪元
  • AutoGenTestCase - 借助AI大模型生成测试用例
  • 更新已打包好的 Spring Boot JAR 文件中的 class 文件
  • 项目开发:【悟空博客】基于SSM框架的博客平台
  • html基础01:前端基础知识学习
  • 古典密码学介绍
  • SpringAI系列 - MCP篇(三) - MCP Client Boot Starter
  • 股票指数期货的变动与股票价格指数的关系是什么?
  • 火山云服务器优势
  • Ⅲ-2.计算机二级选择题(三大结构之选择结构)
  • SOC-ESP32S3部分:28-BLE低功耗蓝牙
  • 多视角学习、多任务学习,迁移学习
  • 【眼镜店管理专用软件】佳易王眼镜店处方开单视力检查管理系统功能操作教程#视力检查#旧镜检查#开单打印
  • 核心机制:流量控制
  • MYSQL 高级 SQL 技巧
  • AI Coding 资讯 2025-06-03
  • Python爬虫解析动态网页:从渲染到数据提取
  • Python训练营打卡Day42
  • 多层 PCB 板抄板实操解析:技巧到实操步骤
  • 普通二极管
  • 对老项目进行node升级兼容
  • 笔记本电脑开机无线网卡自动禁用问题
  • 日语输入法怎么使用罗马字布局怎么安装日语输入法
  • 飞牛fnNAS使用群辉DSM系统
  • ABP-Book Store Application中文讲解 - Part 7: Authors: Database Integration
  • .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
  • 高性能MCU的MPU与Cache优化详解
  • 焊缝缺陷焊接缺陷识别分割数据集labelme格式5543张4类别