10/04/05 02:12:35
>>16
QApplication::arguments()を使えば引数は文字化けしないみたいよ
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); //ソースの文字コードを指定("utf-8"や"Shift-JIS")
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //同上
QString str = argv[1]; // 添え字チェックはとりあえず無視
qDebug() << str; //NG
str = app.arguments()[1];
qDebug() << str; //OK
str = QString::fromLocal8Bit(argv[1]);
qDebug() << str; //OK
return 0;
}
その他のケースでシステムロケール文字コードとのやり取りが発生する場合は
明示的にQString::fromLocal8Bit()を使うのがいいんじゃないか?