QString转化为char*问题,中文路径问题

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();

说明:更多字符转换问题和中文路径问题请参考博客中的其他文章。

posted @ 2017-12-25 16:42  ISmileLi  阅读(106)  评论(0编辑  收藏  举报