qt5.14.2 该文件包含不能在当前代码页(936)中表示的字符

本文介绍了解决Visual Studio C4819警告的方法,包括使用预处理器指令、调整项目设置及文件编码。同时,提供了QtCreator设置UTF-8编码的步骤,以及解决QMessageBox和文本读取时中文乱码的解决方案。

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

warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。

忽略警告,但是问题还在
(1)找出警告的文件,然后在该文件的开始处加入下面的语句:
#pragma warning (disable:4819)
(2)如果是 VS IDE,还可以:在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819;

去掉这个警告
(1)转换Code文件为: UTF-8 带BOM 格式;
(2)如果是 Qt Creator,设置【项目编辑器】,【文件编码】为:UTF-8,【UTF-8 BOM】:如果编码是UTF-8则添加。最后随便改动一下出现警告的文件保存,就会保存为:UTF-8 带BOM 格式。
(3)如果是 VS IDE,打开有该warning的文件,点击【文件】选【高级保存选项】,改变编码格式为【简体中文(GB2312)- 代码页936】或【Unicode(UTF-8 带签名)-代码页65001】,保存。

Qt Creator 设置默认编码格式为 UTF-8

为了保证 QT的文件能在Windows 和Linux下都能正常打开,以及避免由于Windows下和Linux下编码不同而产生的中文字符乱码的问题,需统一代码中的字符编码。为了达到这个目的,需设置 QtCreator的默认编码为UTF-8。

     在“工具->选项 ->文本编辑器-> 行为”把默认编码改为“ UTF-8”。

在这里插入图片描述
设好文件编码格式之后虽然错误没有提示了,但是QMessageBox 仍然显示乱码。
在这里插入图片描述

Qt中QMessageBox显示中文乱码&从text读取中文乱码

1、QMessageBox显示中文乱码

解决方法

QMessageBox messageBox(QMessageBox::NoIcon,QString::fromLocal8Bit("退出"),QString::fromLocal8Bit("你确定要退出吗?"),QMessageBox::Yes | QMessageBox::No, NULL);

在这里插入图片描述

2、读取txt文档乱码

解决方法

    QFile file(m_strFile);
    if(file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        while(!file.atEnd())
        {
            QString s = codec->toUnicode(file.readLine());
            qDebug << s;
        }    
    }

参考

https://blog.csdn.net/CSDN_WHB/article/details/88601199
https://blog.csdn.net/weixin_43266482/article/details/97254507
qt5信息提示框QMessageBox用法
https://www.cnblogs.com/zhoug2020/p/10094855.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值