3

我正在尝试使用 ruby​​ 和 open-uri 从谷歌地图网络服务 API 获取丹麦位置地址。

试图让丹麦埃罗http ://maps.googleapis.com/maps/api/geocode/json?address=ærø&sensor=false®ion=dk在 Chrome 中工作不适用于 open-uri:

require 'rubygems'
require "open-uri"
require 'json'

uri = "http://maps.googleapis.com/maps/api/geocode/json?address=ærø&sensor=false&region=dk"
response = open(uri)
array = JSON.parse(response)
pp array

在这里它产生

/usr/lib/ruby/1.8/uri/common.rb:436:in `split': bad URI(is not URI?): http://maps.googleapis.com/maps/api/geocode/json?address=ærø&sensor=false&region=dk (URI::InvalidURIError)

另一种方法似乎是转义字符:

uri = "http://maps.googleapis.com/maps/api/geocode/json?address=ærø&sensor=false&region=dk"
uri_escaped = URI.escape(uri)
response = open(uri_escaped)
array = JSON.parse(response.read)
pp array

但这会产生一个转义的结果(不被追捧:-)

任何人都知道什么可以解决这个问题(获得未转义的反馈或发送 utf-8 请求)?

这里的 Ruby 版本是 1.8.7

4

1 回答 1

0

弄清楚了:

只需添加

require 'string19'

到第二个示例的顶部,它可以工作

于 2011-10-19T13:34:53.400 回答