我有这些网址:
http://www.jobbsafari.se/jobbsoekning?q=trainers.php%253Fid%253D'%2Band''
http://www.jobbsafari.se/jobbsoekning?q=trainers.php?id%253D%2Band'
http://tay-sen.com.ua/trainers.php?id=12%26action=show_photos%26m_lang_id=9'
我需要将它们编码回真正的URL。现在我正在使用:
string = ARGV[0]
string.gsub("%25", '%').gsub("%53", "S").gsub(etc..)
有没有更好的方法可以执行多个gsub
而无需执行.gsub.gsub.gsub
?
答案 0 :(得分:5)
使用uri
:
require 'uri'
URI.decode(your_url)
它将替换所有URI编码。
答案 1 :(得分:1)
问题是您的网址包含多次编码的查询。
如果编码发生一旦你没有,但是当你有多个图层时,它会变得混乱:
require 'uri'
uri = URI.parse("http://tay-sen.com.ua/trainers.php?id=12%26action=show_photos%26m_lang_id=9")
query = URI.decode_www_form(uri.query).to_h
query # => {"id"=>"12&action=show_photos&m_lang_id=9"}
URI.decode_www_form(query['id']).to_h
# => {"12"=>"", "action"=>"show_photos", "m_lang_id"=>"9"}