Qt:QUrl :: fromUserInput错误地解决了FTP Url问题

时间:2014-07-23 21:21:06

标签: qt networking qurl

将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中的一个已知问题?

我正在使用Qt 4.8.1在Linux上工作。

即使是以下代码

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;

导致“无效”

提前致谢

1 个答案:

答案 0 :(得分:1)

您需要使用@手动替换用户名中的%40。如果使用user@domain.tld调用QUrl,那就是QUrl::setUserName()内部的作用。