在你的main函数的第一行前插入以下内容后再试试看:
int main(int argc, char *argv[])
{
QTextCodec *utf8 = QTextCodec::codecForName("utf8");
QTextCodec::setCodecForCStrings(utf8);
QTextCodec::setCodecForLocale(utf8);
QTextCodec::setCodecForTr(utf8);
......
}
加一句:QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
如果QFileDialog::getOpenFilename返回值是filename,则输出时用tr(filename)即可。
我在windows下,用的是QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));