Forum: Ruby URI.parse and whitespace characters

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Marcelo B. (Guest)
on 2009-04-13 14:54
(Received via mailing list)
Hi,

I have to parse a lot of bad links like:
http://www.something.com/bad link.jpg
(spaces in them)

URI.parse fails parsing them and considers them as faulty links.

However in my case I need it to work. Is there a workaround for this?
Dylan E. (Guest)
on 2009-04-13 15:03
(Received via mailing list)
That's not necessarily a bad url, you just need to encode it properly, i
believe %20 is the code for a space.
Google gives me this summary;
http://www.blooberry.com/indexdot/html/topics/urle...
Andrew T. (Guest)
on 2009-04-13 15:07
(Received via mailing list)
On Mon, Apr 13, 2009 at 12:54 PM, Marcelo B. 
<removed_email_address@domain.invalid>
wrote:
>
> --
> M.
>
>

uri = "http://www.something.com/bad link.jpg"
URI.parse(uri.gsub(/ /, '+')) #<- replaces all spaces with '+'

Andrew T.
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake

"I have never let my schooling interfere with my education" - Mark Twain
Marcelo B. (Guest)
on 2009-04-13 15:34
(Received via mailing list)
Thanks for both the answers.

CGI.escape is my friend:)
Sean O. (Guest)
on 2009-04-14 02:24
(Received via mailing list)
On Mon, Apr 13, 2009 at 12:34 PM, Marcelo B. 
<removed_email_address@domain.invalid>
wrote:
> Thanks for both the answers.
>
> CGI.escape is my friend:)
>
> --
> M.
>
>

Just a small point - URI escaping and CGI escaping are similar but not
the same. To get URI escaping, require 'uri' and use URI.escape
instead of CGI.escape.

Regards,
Sean
This topic is locked and can not be replied to.