VS + Qt环境下解决中文乱码问题

中文乱码问题

VS + Qt环境下,正常输出中文,会出现乱码问题,这是VS与操作系统的编码字符集的问题。
例如:

setWindowTitle("中文窗口");

出现:
VS + Qt环境下解决中文乱码问题_第1张图片

解决方法:

a,如果,在需要输出的中文的地方比较少,可以使用:

setWindowTitle(QString::fromLocal8Bit("中文窗口"));
//或者
setWindowTitle(QStringLiteral("中文窗口"));

b,如果,需要中文出现的地方比较多,可以在.h文件,或main文件中,加入预编译指令:

#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")// 该指令仅支持VS环境
#endif

c,保证绝对无乱码:
1.在.h文件中,添加b中的预编译指令;
2.在main函数中加入,字符串编码设置:

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));   
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

例如:
VS + Qt环境下解决中文乱码问题_第2张图片

你可能感兴趣的:(Qt,VS+Qt)