从QString到char的非ascii字符的丢失*

时间:2018-11-22 06:18:51

标签: c++ qt utf-8

我有一个带有非ascii字符的QString。我将此QString传递给另一个进程。但是,当我调试接收过程时,argv参数未接收到来自源的正确字符串。我的伪代码是

process.start( proc, QStringList() << "-a" <<param );
        process.waitForFinished(m_timeout);

此处参数是包含非ascii文本的QString

1 个答案:

答案 0 :(得分:0)

我用以下代码解决了问题

LPWSTR *szArglist;
int argC;
szArglist = CommandLineToArgvW(GetCommandLineW(),&argC);
if(NULL==szArglist) {
          throw;
}
QString  qstrConvertFile = QString::fromUtf16((const ushort*)(szArglist[4]));