我在将FTP字符串传递到QUrl时遇到了一些问题:
std::cout << QUrl::fromUserInput("ftp://user@host.com:password@ftphost:21/path/file.ext").toString().toStdString().c_str() << std::endl;总是导致
http://ftp//user@host.com:password@ftphost:21/path/file.ext这显然是错误的。上面的FTP Url有什么问题?或者这是Qt4中已知的问题?
我正在Linux上工作,使用QT4.8.1。
即使遵循代码
if(QUrl("ftp://user@host.com:password@ftphost:21/path/file.ext").isValid())
std::cout << "is valid" << std::endl;
else
std::cout << "is not valid" << std::endl;导致“无效”。
提前感谢
发布于 2014-07-23 22:35:54
您需要手动将用户名中的@替换为%40。如果用QUrl调用QUrl::setUserName(),那么user@domain.tld内部就是这样做的。
https://stackoverflow.com/questions/24921230
复制相似问题