本人使用的是Qt5.5,使用qDebug输出信息是遇到中文输出为Unicode码,
到处查资料无果。有人说是Qt5.5的bug,Qt搞得不精。
使用qDebug过程中发现
QString a("你好");
qDebug()<<"中文"<<a;
在上述代码中,“中文”能够正常输出,但是a中的“你好”以unicode的格式输出。
所以,解决方案来了,将QString装换为“中文”的格式,而“中文”是以char* 类型存储,因此执行下列操作:
char* b=a.toStdString().c_str();
这样就实现了转换,问题就解决。
在查阅资料过程中的总结:
1.类似于“你好”,实际是以char* 格式存储
2.QString采用的是unicode
3.QString::toStdString()将Qt中的QString类型装换为C++中的中的std::string类型,std::basic_string::c_str()将std::string类型转换为char*
另外,以类型转换的思路来看,网络上还提供了一种QString到char*类型转换的思路:
Qstring str;
char* ch;
QByteArray ba = str.toLatin1();
ch=ba.data();
注意第三行,一定要加上,不可以str.toLatin1