有乱码
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),并正确处理和显示中文字符