当前位置:首页 > 编程笔记 > 正文
已解决

为什么qt设置了utf-8 bom 格式后还是有乱码

来自网友在路上 145845提问 提问时间:2023-09-19 03:08:38阅读次数: 45

最佳答案 问答题库458位专家为你答疑解惑

 

有乱码


void SingleApplication::_showInstanceRunningDialog()
{// 创建一个提示窗口QMessageBox msgBox;msgBox.setIcon(QMessageBox::Information);msgBox.setWindowTitle("应用已运行");msgBox.setText("应用程序已经在运行中。");msgBox.setStandardButtons(QMessageBox::Ok);msgBox.exec();
}
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif

头文件上加上述后就可以没乱码了

后面发现原来是我的pro中禁用

DEFINES -= _UNICODE,所以头文件上要加上述代码

您在 Qt 项目的 .pro 文件中使用 DEFINES -= _UNICODE,这将禁用 Unicode 支持。这可能导致在处理非ASCII字符时出现乱码问题。

为了正确处理非ASCII字符并防止乱码,建议将 DEFINES 行修改为以下内容:

 

DEFINES += UNICODE

或者,如果您希望同时启用 ANSI 和 Unicode 支持,可以使用以下设置:

 

Copy Code

DEFINES += UNICODE _UNICODE

通过启用 UNICODE 宏定义,Qt 将使用 Unicode API,并正确处理中文字符。

请注意,在修改 .pro 文件后,可能需要重新生成项目来使更改生效。确保代码文件保存时使用了正确的编码(如 UTF-8),并正确处理和显示中文字符

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"为什么qt设置了utf-8 bom 格式后还是有乱码":http://eshow365.cn/6-9062-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!