Qt中用//进行中文注释可能导致意外的BUG

一、问题描述

//或者///都为qt中的注释,理应后面的内容应该与是否为中文没有关系,但有时还是会发生一些莫名其妙的bug,本项目使用MSVC2017编译器,如//后面用英文注释就没事,用中文就会有报错,或者某些中文没事,换个排序或删掉加上某个字就会报错:

二、解决方案

这不是中文注释本身有问题,而是当前文件是UTF-8无BOM,且当前工程没有全局/utf-8,在这种情况下msvc会把它按当前代码页去解释,结尾会留下一个"悬空"的双字节前导字节,结果这一行的//注释没有在换行处正常结束,下一行代码被吞进注释里了,所以报错,某些看起来能编译的中文注释,只是字节序列碰巧没有踩到这个坑,处理方法是将文件改为UTF-8with BOM,在qt的项目编辑区右键,选择 Add UTF-8 BOM on Save,保存即可

相关推荐
凌云拓界1 小时前
NodeVerdict | 性能门禁:把追踪数据变成 CI 规则
ci/cd·信息可视化·开源·node.js·bug·数据可视化·安全架构
郝学胜-神的一滴16 小时前
Qt 高级编程 040:按钮悬浮弹出滑块弹窗的完整攻略
开发语言·c++·qt·软件工程·用户界面
我是小灰灰吖16 小时前
Ubuntu 22.04 安装 SSH 服务与远程调试环境配置指南
qt·ubuntu·ssh
雨田言炎20 小时前
四、关于Qt项目需要知道的
开发语言·笔记·qt
必须得开心呀1 天前
qt生成dump文件并定位异常
开发语言·qt
Quz1 天前
QML ProgressBar 自定义样式:自绘组件、Material风格
qt
Quz1 天前
QML 环形进度条:Canvas 绘制与多环进度
qt
qingmiaozhuan1 天前
软件测试Bug复现高清录屏标准流程:新手入门与规范指南(2026实战版)
bug·电脑录屏·电脑录屏软件·测试录屏规范·音画同步录制
熬夜苦读学习2 天前
Qt--网络编程
开发语言·qt
上海安当技术2 天前
C/S 桌面软件怎么接 UKey 强认证?C# SDK 与 C 动态库集成 WinForms/Qt/工控实战
c语言·qt·c#