Qt 5 利用 fromLocal8Bit() 中解决中文乱码的问题
Qt fromLocal8Bit() 可以设置编码,Qt默认编码是unicode,不能显示中文,windows默认(GBK、GB2312、GB18030)。
使用fromLocal8Bit()函数,实现从本地的字符集GB到unicode。当从数据库中读取是,一般是采用的UTF8,所以读取数据库等网络编码时,我们选择fromUtf8(),这样就能很好的避免中文乱码了。
fromLocal8Bit() Qt中解决中文乱码的问题
1、char * 转 QString 中文乱码解决
QString qstrname;
char name[20] = "中文乱码";
qstrname = QString::fromLocal8Bit(name,strlen(name));
2、std::string 转 QString 中文乱码
解决方案:先将 std::string 转化为 char * ,然后通过 fromLocal8Bit 转为 QString
std::string str = "中文乱码";
QString qstr = QString(QString::fromLocal8Bit(str.c_str()));
能够解决 Qt5 中的乱码问题!!!
欢迎大家加我的群:
460952208