Я пытаюсь проанализировать URL-адрес FTP, который содержит некоторые специальные символы, такие как @
в имени пользователя и пароле:
username:p@sswrd@ftp.myhost.com/mypath
Когда я пытаюсь:
URI.parse(url)
, я получаю:
URI :: InvalidURIError: схема ftp не принимает часть реестра: имя пользователя: p @ sswrd @ ftp.myhost.com (или неверное имя хоста?)
Затем я попытался закодировать URL:
url = URI.encode(url, '@')
Но также получил другую ошибку:
URI :: InvalidURIError: схема ftp не принимает часть реестра: имя пользователя: p% 40sswrd% 40ftp.myhost.com (или неверное имя хоста?)
Наконец, я попробовал другое решение:
URI::FTP.build(:userinfo => 'username:p@sswrd', :host=>'ftp.myhost.com', :path => '/mypath')
Но я также получил ошибку:
URI :: InvalidComponentError: неверный компонент (ожидаемый пользовательский компонент): p @ ssword
Я использую ruby 1.8.7.