小记——Qt Creator MSVC版本中文乱码

本文介绍了在使用msvc版本的Qt Creator时遇到的中文乱码问题及其原因,主要是由于编码格式不一致导致。解决方案包括修改Qt Creator的设置和在代码中使用QStringLiteral。此外,还提到MSVC在编译时对源码字符集的判断可能引起乱码。作者提供了详细的解决步骤和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt Creator MSVC版本中文乱码

场景

在使用msvc版本的Qt开发的时候,会遇到了中文乱码的问题。以我的电脑场景说下解决方式。

方法一、

1、配置

Qt:Qt 5.8.0(msvc 2015,32 bit)

操作系统:win10 64位。

2、原因

1. Qt Creator的编辑器默认使用UTF-8编码方式来读取文本文件。在Windows中文简体操作系统,编码使用的是GB2312。而Visual Studio保存文件时默认采用的是本地编码方式。如果使用Qt Creator读取由Visual Studio创建的文件,那么编辑器就会以UTF-8编码格式读取GB2312编码格式的文件,出现中文乱码,因为这两套编码系统对汉字编码是不同的。在英文下,UTF-8和GB2312格式下一个字母是1个字节。中文下,一个汉字GB2312占2个字节,UTF-8下占3个字节。

2. MSVC在编译时,会根据源代码文件有无BOM来定义源码字符集。如果有BOM,则按BOM解释识别编码;如果没有,则使用本地字符集,对于简体中文的Windows操作系统就是GB2312。那么,当MSVC遇到一个没有BOM的UTF-8编码的文件时,它通常会把文件看作GB2312的来处理。如果文件全是英文没有问题,但如果包含中文,编译器就会出现误读。这种情况下,Qt Creator编辑器是正常的。

3、解决方式

3-1、更改Qt的设置

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yav5LiA5bed,size_20,color_FFFFFF,t_70,g_se,x_16

 3-2、代码中QString字符串使用

QStringLiteral("中文汉字")

如果还有其他的设置方式,稍后会在这里继续更新。

更新:

方法二:

1、环境说明

操作系统:windows11  64位

Qt版本:Qt 5.21.2

MSVC:vs2017 64位

工具:Qt Creator

2、同样的也是也遇到了Qt创建的程序上出现中乱码,解决方案是,在对应的头文件中添加:

#pragma execution_character_set("utf-8")

在调用的地方设置text("你好!")。

本文原创作者:冯一川(ifeng12358@163.com),请勿转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯一川

谢谢老板对我的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值