Получить параметры строки cmd из самого QApplication.
Так
QApplication app(argc, argv);
QStringList args = app.arguments();
for(...)
Qt будет правильно обрабатывать кодировку. Но это только исправит проблемы с юникодом в строке cmd. Не уверен, что это ваша главная проблема.
EDIT:
fromLocal8Bit (), вероятно, не работает, потому что это была не локальная кодировка, а utf8. Таким образом, fromUtf8 () будет работать на Linux и OSX (но не будет работать на Windows). Для * nux это зависит от некоторых переменных окружения (LS_LANG или чего-то еще). Я думаю, Qt все учитывает и правильно конвертирует. Вы можете посмотреть код конструктора для QApplication, если хотите точно знать, что они делают.