Matthias Baumgart
2009-Jun-22 15:58 UTC
URI::InvalidURIError with open-uri and Google Maps
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)} &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.
Matthias Baumgart
2009-Jun-24 19:52 UTC
Re: URI::InvalidURIError with open-uri and Google Maps
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.
> 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 If it seems like something that should be a standard part of the language, it probably is: always check the docs first.