ruby - 如何将编码的查询值添加到 URL?

标签 ruby uri urlencode open-uri ruby-1.9.3

我正在寻找一种方便实用的方法来将编码值添加到 Ruby 中的 URL 查询字符串。 目前,我有:

require 'open-uri'

u = URI::HTTP.new("http", nil, "mydomain.example", nil, nil, "/tv", nil, "show=" + URI::encode("Rosie & Jim"), nil) 

p u.to_s # => "http://mydomain.example/tv?show=Rosie%20&%20Jim"

这不是我要找的,因为我需要得到 “http://mydomain.example/tv?show=Rosie%20%26%20Jim”,这样 show= 值就不会被截断。

Open::URI 是否有其他方法可以做到这一点?如果没有,是否可以使用任何其他标准 Ruby 或 gem 来完成?

最佳答案

尝试使用 CGI::escape 而不是 URI::encodedoc here

关于ruby - 如何将编码的查询值添加到 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214879/

相关文章:

arrays - 通过哈希转换字符串

ruby - 预签名的 GET url 返回 403

css - 从 Tomcat 到 Glassfish 的类似 css 文件夹路径

url - Web Api:Whitespace使ASP.NET 4 Web Api(RC)崩溃

mongodb - flutter 中 uri mongo_dart 中的方案无效

curl - cURL 可以编码等于 (=) 符号吗?

javascript - 编码uri组件,不自动解码

ruby - 如何修改 ruby​​ 中现有的 csv 列?

ruby - 这个 Ruby Array 映射代码中是否有隐式关键字?

带有 urlencoded 多维字典的 Python POST