gpt4 book ai didi

ruby - 无法使用 Ruby 的 'open-uri' 打开 utf-8 URI

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:34 26 4
gpt4 key购买 nike

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

尝试获取 Ærø,丹麦:http://maps.googleapis.com/maps/api/geocode/json?address=ærø&sensor=false&region=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

最佳答案

想通了:

只需添加

require 'string19'

到第二个例子的顶部,它起作用了

关于ruby - 无法使用 Ruby 的 'open-uri' 打开 utf-8 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7821853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com