现象:QCoreApplication::applicationDirPath (),如果路径中有中文,则乱码。
要想正确运行,三点
1,传入的程序路径不能是乱码
2,传入的参数不能是乱码
3,要调用的程序获得的参数不能是乱码
是不是乱码可以用debug view来打印输出
1,穿入QProcess的参数最好都这样处理一下。
QString s = QCoreApplication::applicationDirPath ()
QTextCodec *code = QTextCodec::codecForName("GB2312");
str::string str = codec->fromUnicode(s).data();
QString t_strDir = QString(QString::fromLocal8Bit(str.c_str()));
这个t_strDir 就是中文的了。 //或者你会这样获取 QString programPath = QString::fromLocal8Bit("E:/中文路径测试/Release/helloChinese.exe");
2,参数也同上一步一样,如果有路径的话,就这样处理一下。
3,
被调用的程序获取参数那里这样子。
QString t_sourceFile = QString::fromLocal8Bit(argv[1]);