QT学习笔记-QT5.15 + MSVC编译套件时编译日志及运行日志日志乱码解决

news2025/5/14 4:27:31

QT学习笔记-QT5.15 + MSVC编译套件时编译日志及运行日志日志中文乱码解决

  • 0、基础环境
  • 1、QtCreator中的基本设置
    • 编辑->首选项->文本编辑器
  • 2、问题1:MSVC编译日志乱码问题解决
    • 问题描述
    • 解决方法
  • 3、问题2:MSVC构建套件编译后程序运行日志乱码问题
    • 问题描述
    • 解决方法

0、基础环境

操作系统:Windows10专业版
QT版本:QT5.15.2
QtCreator版本:9.0.2
MSVC版本:MSVC 2019 64bit
C/C++编译器:Microsoft Visual C++ Compiler 17.1.32328.378(amd64)
调试器:Auto-detected CDB at C:\Program Files\Windows Kits\10\Debuggers\x64\cdb.exe

1、QtCreator中的基本设置

编辑->首选项->文本编辑器

文件编码的设置都是采用的默认值UTF-8,如下图:
在这里插入图片描述
在这里插入图片描述

2、问题1:MSVC编译日志乱码问题解决

问题描述

当qt的项目采用MSVC构建套件对项目代码进行编译时,在QtCreator的编译输出窗口中显示的编译日志部分内容显示乱码,此处的乱码不一定是中文乱码,如下图:
在这里插入图片描述

解决方法

在编辑->首选项->构建套件(Kit)-》MSVC构建套件设置中勾选[Force UTF-8 MSVC compiler output],如下图:
在这里插入图片描述
然后点击应用或直接确定,在对项目代码执行重新构建操作,则编译输出中的编译日志已能正常显示没有乱码了,如下图:
在这里插入图片描述

3、问题2:MSVC构建套件编译后程序运行日志乱码问题

问题描述

在QtCreator中对程序进行调试运行时会在QtCreator的应用程序输出窗口(也可以认为是控制台)中显示程序中的qDebug()日志,这部分日志中的乱码通常是中文显示乱码。
代码实例:

if (!operateResult.isSuccess())
{
    qWarning() << "Name = " << this->getName() << ",建立与" << this->serverIp << ":" << this->serverPort << "的握手失败...";
    connectResult = false;
}
else
{
    this->errCnt = 0;
    this->state = 1;
    qDebug() << "Name = " << this->getName() << ",成功与" << this->serverIp << ":" << this->serverPort << "建立了连接...";
}

如下图:
在这里插入图片描述

解决方法

网上查阅的话通常会介绍3种方法:
1、第1种是通过代码增加处理编码格式的方法,个人认为这种方法最不可取,会导致原始代码中增加很多无用代码,即增加了工作量又降低了代码的可读性。
2、第2种方法还是修改代码,在头文件或者cpp源码文件的#include之后增加一行

#pragma execution_character_set("utf-8")   //实现在日志输出中解决中文乱码问题,测试有效

这种方法有效,个人还是不推荐,还是因为要修改源码,虽然只有一行。
3、第3种方法,个人强烈推荐的方法,就是在pro文件中增加如下代码。(亲测有效)

# 解决msvc构建套件下qtcreator控制台日志中文乱码问题
msvc {
    QMAKE_CFLAGS += /utf-8
    QMAKE_CXXFLAGS += /utf-8
}

注意写法: { 与 msvc要在一行,中间有一个空格,如需奥把 { 写到msvc的下一行是编译不过去的。

如下图:
在这里插入图片描述
然后重新构建后,运行日志中文显示正常,如下图:
在这里插入图片描述

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

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

相关文章

多雷达探测论文阅读笔记:雷达学报 2023, 多雷达协同探测技术研究进展:认知跟踪与资源调度算法

多雷达协同探测技术 原始笔记链接:https://mp.weixin.qq.com/s?__biz=Mzg4MjgxMjgyMg==&mid=2247486627&idx=1&sn=f32c31bfea98b85f2105254a4e64d210&chksm=cf51be5af826374c706f3c9dcd5392e0ed2a5fb31ab20924b7dd38e1b1ae32abe9a48afa8174#rd ↑ \uparrow …

Redis—全局命令

Redis—全局命令 &#x1f50e;get / set&#x1f50e;常用全局命令keysexistsdelexpirettlkey 的过期策略type Redis 官网 Redis 中的命令不区分大小写 进入 Redis 客户端 redis-cli -h Redis 服务器的 IP 地址 -p Redis 服务器的端口号省略 -h 表示 Redis 服务器的 IP 地址…

【ASP.NET MVC】数据库访问(5)

一、ORM简介 对象关系映射&#xff08;Object Relational Mapping&#xff0c;简称ORM&#xff09;模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 以上是官话&#xff0c;个人理解&#xff1a; 1、解决问题&#xff1a;数据库的访问 2、如何解决&a…

Vue路由:Vue Router

Vue Router 介绍 Vue Router 是 Vue.js (opens new window) 官方的路由管理器。 核心深度集成&#xff0c;包含的功能有&#xff1a; 嵌套的路由/视图表 模块化的、基于组件的路由配置 路由参数、查询、通配符基于 Vue.js 过渡系统的视图过渡效果 细粒度的导航控制 Vue Rou…

学习系统编程No.33【生产消费模型】

引言&#xff1a; 北京时间&#xff1a;2023/7/22/14:27&#xff0c;现实和预期往往相差是巨大的&#xff0c;哈哈哈&#xff01;白天睡不醒&#xff0c;晚上睡不着&#xff0c;就像一个夜猫子一样。熬夜耍手机&#xff0c;我真的是专业的&#xff0c;已经连续好久没有正常睡过…

【C++】类和对象 - 中

目录 1. 类的6个默认成员函数2. 构造函数2.1 概念2.2 特性3.3 默认构造函数 3. 析构函数3.1 概念3.2 特性 4. 拷贝构造函数4.2 概念4.3 特性4.3 传参或作返回值 5. 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 前后置 --重载5.4 自定义类型的输出输出 6. const成员函数…

SAP MM学习笔记15-物料调达中的Master数据(1)-仕入先Master

SAP中做一个购买发注的时候&#xff0c;涉及到以下Master数据&#xff1a; 1&#xff0c;仕入先Master&#xff08;供应商&#xff09;&#xff1a;跟谁买 2&#xff0c;品目Master&#xff08;物料&#xff09;&#xff1a;买什么 3&#xff0c;购买情报&#xff1a;什么价…

电脑误删除环境变量Path

今天在搞环境变量 一不注意手一滑把Path删除了&#xff0c;当时惊了一身冷汗&#xff0c;幸好看见有别人讲的补救措施&#xff0c;赶紧记录一下&#xff1a; 首先进入注册表winR&#xff0c;输入regedit&#xff1a; 在注册表编辑器中进入到【HKEY_LOCAL_MACHINE\SYSTEM\Contr…

基于 STM32自研多任务+SpringBoot+Vue 农业大棚智能调光系统

工作以后常常容易感到疲于奔命&#xff0c;即使在周末也没有得到高质量的休息。打工人/学生党如何过周末&#xff1f;你有哪些延长周末和下班时间的好方法吗&#xff1f;- 方法就是多积累&#xff0c;多发博客&#xff0c;将感悟全写出来&#xff01;&#xff01;&#xff0c;接…

Python——调用webdriver.Chrome() 报错

今天运行脚本&#xff0c;报错内容如下&#xff1a; collecting ... login_case.py:None (login_case.py) login_case.py:11: in <module> dr webdriver.Chrome() D:\Program Files (x86)\Python\Python39\Lib\site-packages\selenium\webdriver\chrome\webdriver.p…

改造 dify 项目适配自建的 OpenAI API 服务

改造 dify 项目适配自建的 OpenAI API 服务 0. 背景1. 修改默认的 api_base 地址2. 修改 openai_provider.py3. 重新构建 docker 镜像4. 修改 docker-compose.yaml5. 启动项目 0. 背景 项目 https://github.com/langgenius/dify.git 的 OpenAI 配置项目里&#xff0c;现在(202…

01-1 搭建 pytorch 虚拟环境

pytorch 管网&#xff1a;PyTorch 一 进入 Anaconda 二 创建虚拟环境 conda create -n pytorch python3.9注意要注意断 VPN切换镜像&#xff1a; 移除原来的镜像 # 查看当前配置 conda config --show channels conda config --show-sources# 移除之前的镜像 conda config --…

力扣初级算法(二分查找)

力扣初级算法(二分法)&#xff1a; 每日一算法&#xff1a;二分法查找 学习内容&#xff1a; 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 2.二分查找流程&…

解密外接显卡:笔记本能否接外置显卡?如何连接外接显卡?

伴随着电脑游戏和图形处理的需求不断增加&#xff0c;很多笔记本电脑使用者开始考虑是否能够通过外接显卡来提升性能。然而&#xff0c;外接显卡对于笔记本电脑是否可行&#xff0c;以及如何连接外接显卡&#xff0c;对于很多人来说仍然是一个迷。本文将为您揭秘外接显卡的奥秘…

javax.servlet.ServletException: Servlet[dispatcher]的Servlet.init()引发异常----解决方法

目录 javax.servlet.ServletException: Servlet[dispatcher]的Servlet.init&#xff08;&#xff09;引发异常----解决方法 问题&#xff1a;报500错&#xff1a; 解决方法 运行结果 javax.servlet.ServletException: Servlet[dispatcher]的Servlet.init&#xff08;&#x…

linux文件描述符fd

文件描述符 fd是一个>0 的整数 每打开一个文件&#xff0c;就创建一个文件描述符&#xff0c;通过文件描述符来操作文件 预定义的文件描述符: 0:标准输入&#xff0c;对应于已打开的标准输入设备(键盘) 1:标准输出&#xff0c;对应于已打开的标准输出设备(控制台) 2.标准错误…

通向架构师的道路之apache_tomcat_https应用

一、总结前一天的学习 通过上一章我们知道、了解并掌握了Web Server结合App Server是怎么样的一种架构&#xff0c;并且亲手通过Apache的Http Server与Tomcat6进行了整合的实验。 这样的架构的好处在于&#xff1a; 减轻App Server端的压力&#xff0c;用Web Server来分压…

关于Express 5

目录 1、概述 2、Express 5的变化 2.1 弃用或删除内容的列表&#xff1a; app.param&#xff08;name&#xff0c;fn&#xff09;名称中的前导冒号&#xff08;&#xff1a;&#xff09; app.del() app.param&#xff08;fn&#xff09; 复数方法名 res.json&#xff0…

EMC VNX2代base module的更换步骤

开始之前&#xff0c;先介绍一下什么是EMC VNX2代设备以及什么是base module&#xff1f;EMC的VNX存储分为1代和2代&#xff0c;两个物理架构发生了很大的变化&#xff0c;VNX2代的型号是偶数的&#xff0c;如VNX5200&#xff0c;VNX5400&#xff0c;VNX5600&#xff0c;VNX580…

windows服务器iis PHP套件出现FastCGI等错误解决方法汇总

如果您的服务器安装了PHP套件&#xff0c;出现了无法打开的情况&#xff0c;请参照如下办法解决&#xff1a; 首先&#xff0c;需要设置IIS允许输出详细的错误信息到浏览器&#xff0c;才好具体分析 错误一&#xff1a; 处理程序“FastCGI”在其模块列表中有一个错误模块“Fast…