From: Morgan Cheng Date: 2007-06-05T16:40:11+09:00 Subject: Re: URI class bug? On Jun 5, 3:00 pm, "Jano Svitok" wrote: > On 6/5/07, Morgan Cheng wrote: > > > I am using Ruby 1.8.6. I found URI cannot parse URI with "_" is host. > > > uri = "http://dr_gabriele.podomatic.com/enclosure/ > > 2006-08-03T15_09_59-07_00.m4v" > > URI.parse(uri) > > > Is there any way to work around that? > > thanks > > It seems underscores are not allowed in host part of an URI. So it's > not a bug. See RFC 2396 (URI), and 1035 (DNS). If you really want it, > you can open the class and redefine some of the methods and/or > manually edit URI sources. In RFC 2396, "_" is taken as "Unreserved Characters". Unreserved characters can be escaped without changing the semantics of the URI, but this should not be done unless the URI is being used in a context that does not allow the unescaped character to appear. However, URI.escape doesn't escape "_". require 'URI' original_uri = "http://dr_gabriele.podomatic.com/enclosure/" uri = URI.escape(original_uri) puts uri == original_uri