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,

Другие вопросы по тегам