ruby-on-rails - 如何将 http url 的空格转换为加号 (+)?

标签 ruby-on-rails ruby curl

我将要像这样进行类似的 curl 调用:

curl https://api.mapbox.com/geocoding/v5/mapbox.places/1600+pennsylvania+ave+nw.json

当我输入自己的地址时,它看起来像这样:1600 pennsylvania ave nw。我尝试使用 URI.encode 方法将空格转换为 + 字符:

address = URI.encode(full_address)

但结果是 1600%20pennsylvania%20ave%20nw,毕竟这似乎是一个正确的输出,但是它并没有解决我的问题。

一种可能的解决方案是手动转换和替换每个字符,但是有更好的解决方案吗?

最佳答案

你想要

CGI.escape

相反。这可能会转换一个字符串,因此您可以将其作为 html 参数发送,例如:

CGI.escape "http://something that needs to be encoded"
=> "http%3A%2F%2Fsomething+that+needs+to+be+encoded"

另见 What's the difference between URI.escape and CGI.escape?

关于ruby-on-rails - 如何将 http url 的空格转换为加号 (+)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35830586/

相关文章:

ruby-on-rails - 会计金额使用整数美分还是小数?

php - curl 服务器证书验证失败

r - 发送数据时使用POST下载R中的文件

ruby-on-rails - 访问从 Rails 中的日期助手发送的 date() 变量

ruby-on-rails - Rails 3,使用单选按钮标签进行 DRY 的最佳方式?

ruby-on-rails - 奇怪的事件管理员(Rails)错误

ruby - 如何将字符串拆分为多个单词的数组?

ruby - initialize和self.new的区别

ruby-on-rails - 不同类型内容的不同部分

PHP cURL 身份验证问题