# Open-uri and illegal url characters

**URL:** <https://www.ruby-forum.com/t/open-uri-and-illegal-url-characters/139776>\
**Category:** Ruby\
**Created:** [June 6, 2008, 10:03pm UTC](https://www.ruby-forum.com/t/open-uri-and-illegal-url-characters/139776 "2008-06-06T22:03:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 6, 2008, 10:03pm UTC](https://www.ruby-forum.com/t/open-uri-and-illegal-url-characters/139776/1 "2008-06-06T22:03:26Z")

</div>

Hello, n00b here. I use open-uri to read a Yahoo .csv file of stock  
and index quotes. Yahoo indices start with a circumflex (“^”) which a  
browser will convert to “%5e”. The following line is rejected by Yahoo  
(andRuby) ==\>s=open(‘[http://download.finance.yahoo.com](http://download.finance.yahoo.com)  
/d/quotes.csv?s=^DJI,^SPX,^IXIC&f=sl1d1t1nohgv&e=.csv’).read  
Is there a Ruby method that will automatically convert illegal  
characters into url-speak? Thanks, Bill

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 6, 2008, 10:05pm UTC](https://www.ruby-forum.com/t/open-uri-and-illegal-url-characters/139776/2 "2008-06-06T22:05:47Z")

</div>

On Jun 6, 12:56 pm, removed\_email\_address@domain.invalid wrote:

> Hello, n00b here. I use open-uri to read a Yahoo .csv file of stock  
> and index quotes. Yahoo indices start with a circumflex (“^”) which a  
> browser will convert to “%5e”. The following line is rejected by Yahoo  
> (andRuby) ==\>s=open(‘[http://download.finance.yahoo.com/d/quotes.csv?s=^DJI,^SPX,^IXIC&f=sl1d1t1nohgv&e=.csv](http://download.finance.yahoo.com/d/quotes.csv?s=%5EDJI,%5ESPX,%5EIXIC&f=sl1d1t1nohgv&e=.csv)’).read  
> Is there a Ruby method that will automatically convert illegal  
> characters into url-speak? Thanks, Bill

Oops, that url is ==\>  
[http://download.finance.yahoo.com/d/quotes.csv?s=^DJI,^SPX,^IXIC&f=sl1d1t1nohgv&e=.csv](http://download.finance.yahoo.com/d/quotes.csv?s=%5eDJI,%5eSPX,%5eIXIC&f=sl1d1t1nohgv&e=.csv)

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 6, 2008, 10:07pm UTC](https://www.ruby-forum.com/t/open-uri-and-illegal-url-characters/139776/3 "2008-06-06T22:07:35Z")

</div>

require ‘cgi’

CGI.escape(’^’) =\> “%5E”

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 6, 2008, 10:10pm UTC](https://www.ruby-forum.com/t/open-uri-and-illegal-url-characters/139776/4 "2008-06-06T22:10:33Z")

</div>

On Jun 6, 1:00 pm, removed\_email\_address@domain.invalid wrote:

> On Jun 6, 12:56 pm, removed\_email\_address@domain.invalid wrote:
> 
> > Hello, n00b here. I use open-uri to read a Yahoo .csv file of stock  
> > and index quotes. Yahoo indices start with a circumflex (“^”) which a  
> > browser will convert to “%5e”. The following line is rejected by Yahoo  
> > (andRuby) ==\>s=open(‘[http://download.finance.yahoo.com/d/quotes.csv?s=^DJI,^SPX,^IXIC&f=sl1d1t1nohgv&e=.csv](http://download.finance.yahoo.com/d/quotes.csv?s=%5EDJI,%5ESPX,%5EIXIC&f=sl1d1t1nohgv&e=.csv)’).read  
> > Is there a Ruby method that will automatically convert illegal  
> > characters into url-speak? Thanks, Bill
> 
> Oops, that url is ==\>[http://download.finance.yahoo.com/d/quotes.csv?s=^DJI,^SPX,^IXI](http://download.finance.yahoo.com/d/quotes.csv?s=%5eDJI,%5eSPX,%5eIXI)…

Jeez, I really am a newbie. Of course the above link will work fine in  
a browser.  
The point is, it won’t work in a Ruby script! The open-uri module  
won’t convert “^”  
to “%5e” and the question is, is there a Ruby way?
