QString转化为char*问题,中文路径问题
零、小序
今天遇到一个很奇怪的问题,程序运行要生成中间结果,并以xml文件的形式保存起来。但是打包起来之后,死活就是生成不了xml文件。调试代码时发现又没有什么问题,中间结果可以生成。由于之前这块不是自己写的,也没有特别在意。最后测试半天才发现,打包程序中含有中文路径。是QString转化为char*时导致的。
一、方法
QString 转化为char*的方法:
说明:最重要的是toLocal8Bit()的使用,Qt默认的编码是unicode不能显示中文,toLocal8Bit()就是为了解决中文显示问题的。
QString xmlPath=QCoreApplication::applicationDirPath();
QString xmlFileName = “test”;
方法1:QByteArray ba = QString(xmlPath + QString(“测试”) + xmlFileName + “.xml”).toLocal8Bit();
char *Path = ba.data();
方法2:String tempPath = (xmlPath + xmlFileName + “.xml”);
string strTemp = tempPath.toLocal8Bit().toStdString();
const char *path = strTemp.c_str();
说明:更多字符转换问题和中文路径问题请参考博客中的其他文章。
本文为博主原创文章,未经博主允许请勿转载!作者:ISmileLi