我的项目现在有一个接口是fopen,我用Qt做UI框架。我用
QString file = QFileDialog::getOpenFileName(this->parentWidget(),
tr("Open G File"),
"",
"G File (*.g)"
);
FILE* f= fopen((char*)(file.toLocal8Bit().data()),'w');
只要路径包含中文就会打不开,我调试发现file.toLocal8Bit().data()的中文部分是乱码。好多转换函数都用过了都不行。小弟用的是Qt5 VS2010,请不要将那些Qt4弃用的编码函数贴上来。
希望各位能帮小弟实际试一下,因为很多热心的朋友帮我出主意我都试过都不行。
http://bbs.csdn.net/topics/390649179?page=1#post-396159354
Qt 编码 UNICODE
------解决方案--------------------
QString file = QFileDialog::getOpenFileName(this->parentWidget(),
tr("Open G File"),
"",
"G File (*.g)"
);
if(!file.isEmpty())
{
QFile open_file(file);
bool is_open = open_file.open(QFile::ReadOnly);
}