У меня есть QString с символами, отличными от ascii. Я передаю эту QString другому процессу. Однако, когда я отлаживаю получающий процесс, аргументы argv не получают правильную строку, которая была предназначена из источника. Мой псевдокод был бы
process.start( proc, QStringList() << "-a" <<param );
process.waitForFinished(m_timeout);
Здесь param - это QString, который содержит текст не ascii
Windows 7 64 бит
Принимает ли программа параметры, отличные от ASCII, вне Qt? Попробуйте запустить proc -a "....." в окне cmd. Если это сработает, вы можете попробовать в Qt с process.setNativeArguments().
даже через командную строку, если я передаю строку, в отладчике процесса я не получаю правильные символы
Тогда проблема в принимающем приложении. Вы должны задать новый вопрос об этом.





Я решил проблему с помощью следующего кода
LPWSTR *szArglist;
int argC;
szArglist = CommandLineToArgvW(GetCommandLineW(),&argC);
if (NULL==szArglist) {
throw;
}
QString qstrConvertFile = QString::fromUtf16((const ushort*)(szArglist[4]));
Какая это ОС? Кодирование параметров процесса обычно зависит от вашей среды и рассматриваемого приложения.