ruby - 在 Ruby 中用空格替换 %20

标签 ruby arrays string

我目前有一个字符串,它的内容类似于 ["green%20books"],我希望它的内容为 ["green books"]

我认为用谷歌搜索会很快得到结果,但每个人都只想将空格变成 %20s。反之则不然。

如有任何帮助,我们将不胜感激!

编辑:

这是我正在使用的函数,我很困惑在这里解码 URL 的位置。我尝试删除 URI.encode 文本,但这破坏了功能。

def self.get_search_terms(search_url)
    hash = CGI.parse(URI.parse(URI.encode(search_url)).query) #returns a hash
    keywords = []
    hash.each do |key, value|
      if key == "q" || key == "p"
        keywords << value
      end
    end
    keywords
  end

最佳答案

您可以使用 URI 的 'unencode' 方法。 (别名为解码)

require 'uri'
URI.decode("green%20books")
# => "green books"

这不仅会用空格替换“%20”,还会替换每个 uri 编码的字符,我认为这是您想要的。

documentation

关于ruby - 在 Ruby 中用空格替换 %20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11622559/

相关文章:

javascript - IF 语句并返回到函数的开头

ruby-on-rails - 如何修复 `new' :String 的未定义方法 "Rack::Cors"

arrays - 在 ruby​​ 上使用每个乘法数组

ruby-on-rails - rails 控制台要求 nokogiri 返回 false(但在 irb 中工作)

Java编程,寻找数组中某个键的连接

c++ - C++中的指针数组排序算法

python - 如何在Python中实现向前兼容的字符串文字?

java - 使用 String.formatter 分隔到不同的行

ruby - rake 错误 : Stack level too deep

java - 打印字符串数组字典顺序中第一个元素时出现问题(java)