Qt: QUrl::fromUserInput неправильно интерпретирует URL-адрес FTP
У меня есть некоторые проблемы при передаче строки 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
что явно не так. В чем проблема с указанным выше URL-адресом FTP? Или это известная проблема в Qt4?
Я работаю над Linux, используя Qt 4.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;
В результате "не является действительным"
заранее спасибо
1 ответ
Решение
Вам нужно вручную заменить @
в имени пользователя с %40
, Это то, что делает QUrl внутренне, если QUrl::setUserName() вызывается с user@domain.tld
,