# URI::InvalidURIError with open-uri and Google Maps

**URL:** <https://www.ruby-forum.com/t/uri-invalidurierror-with-open-uri-and-google-maps/170774>\
**Category:** Rails\
**Created:** [June 22, 2009, 6:26pm UTC](https://www.ruby-forum.com/t/uri-invalidurierror-with-open-uri-and-google-maps/170774 "2009-06-22T18:26:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Matthias\_Baumgart](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7993a0/32.png) [@Matthias\_Baumgart](https://www.ruby-forum.com/u/Matthias_Baumgart)\
**Post date:** [June 22, 2009, 6:26pm UTC](https://www.ruby-forum.com/t/uri-invalidurierror-with-open-uri-and-google-maps/170774/1 "2009-06-22T18:26:31Z")

</div>

Hello,

I’m getting an URI::InvalidURIError in my controller when I use german  
characters in the uri. Google accepts them but open-uri not. How to  
encode them?

That’s my controller simplified:

def index  
require ‘open-uri’  
address = “Bürgerstraße+68+01127+Dresden”  
api\_key = “my api key”  
json = open(“[http://maps.google.com/maps/geo?q=#{(address)}](http://maps.google.com/maps/geo?q=#%7B(address)%7D)  
&output=json&key=#{api\_key}”).read  
render :text =\> json  
end

My environment:  
Rails 2.3.2  
Gem 1.3.4  
ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]

Yours, Matthias.

---

<div class="post-metadata">

**Author:** ![Matthias\_Baumgart](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7993a0/32.png) [@Matthias\_Baumgart](https://www.ruby-forum.com/u/Matthias_Baumgart)\
**Post date:** [June 24, 2009, 9:53pm UTC](https://www.ruby-forum.com/t/uri-invalidurierror-with-open-uri-and-google-maps/170774/2 "2009-06-24T21:53:19Z")

</div>

Ok, I should precise my question. I know I have to encode the special  
charactes to ascci code. For js, java and php there is a function to  
convert the characters. I didn’t found one for rails.

So is there a better way for converting then gsub for every single  
special char:?  
address = address.gsub(/ü/,’%FC’)

Yours,  
Matthias.

---

<div class="post-metadata">

**Author:** ![Matthias\_Baumgart](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7993a0/32.png) [@Matthias\_Baumgart](https://www.ruby-forum.com/u/Matthias_Baumgart)\
**Post date:** [June 25, 2009, 12:29am UTC](https://www.ruby-forum.com/t/uri-invalidurierror-with-open-uri-and-google-maps/170774/3 "2009-06-25T00:29:57Z")

</div>

> Ok, I should precise my question. I know I have to encode the special  
> charactes to ascci code. For js, java and php there is a function to  
> convert the characters. I didn’t found one for rails.
> 
> So is there a better way for converting then gsub for every single  
> special char:?  
> address = address.gsub(/ü/,‘%FC’)
> 
> Yours,  
> Matthias.

URI.encode

[http://www.ruby-doc.org/core/classes/URI/Escape.html](http://www.ruby-doc.org/core/classes/URI/Escape.html)

If it seems like something that should be a standard part of the  
language, it probably is: always check the docs first.
