16,815
社区成员




QString fileName = QString::fromLocal8Bit("测试.txt");
QByteArray byte = fileName.toLocal8Bit();
byte = byte.toPercentEncoding();
byte = QByteArray("ftp://192.168.31.147/") + byte;
qDebug()<<byte;
QUrl u;
u = u.fromEncoded(byte);
QNetworkAccessManager manager;
QEventLoop loop;
QNetworkReply *reply = manager.get(QNetworkRequest(u));
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
QString code = QString::fromLocal8Bit(reply->readAll());
qDebug()<<code;
自己解决了。本身QT是4.8.7的。temp是utf8编码的中文网址。
//得到字节数组
QByteArray ba=temp.toLocal8Bit();
//排除了/:
QByteArray ba2 =ba.toPercentEncoding("/:");
//生成url
m_Url = QUrl::fromEncoded( ba2 );
不要用默认QURL或者setUrl(),会将百分号%解析成%25。于是服务器总是报错没有那个文件。