用VisualStudio作为IDE,使用Qt框架,显示中文,会出现乱码的状况。框架
缘由:MSVC编译器虽然能够正常编译带BOM的UTF-8编译的源文件,可是生成的可执行文件的编码是Windows本地字符集,好比GB2312。在可执行文件中,字符串是以GB2312编码的,而可执行程序执行到该语句时,对这个字符串倒是以UTF-8解码的,这样就会出现乱码。函数
解决方法有两种:编码
1.使用QStringLiteral(str)宏封装字符串,但此种方法不能使用tr()函数用于翻译字符串。翻译
QString str = QStringLiteral("使用中文");utf-8
2.强制MSVC编译器采用UTF-8编码生成可执行文件,须要在每一个使用到中文字符串的头文件和源文件的前部加入以下语句:字符串
#pragma execution_character_set("utf-8")编译器