平常都用MinGw编译,但项目需要用到一个MSVC编译个一个库,为了避免出现莫名其妙的问题,现改成MSVC编译,之后出现中文乱码的问题。
- 在出现中文字符串的文件头中加入如下语句:
#if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif
- 也可以使用QStringLiteral()宏对每个中文字符串封装,此方法的缺点是不能在使用tr()函数用于字符串翻译。
- QString::fromLocal8Bit()也可以。
-
QString::fromWCharArray。
-
tr(u8"这是一个中文测试4");