如何在文件名中替换“%26”?

时间:2013-08-07 18:38:28

标签: ruby nokogiri mechanize

我正在使用以下方式保存已删除的图像:

img_url = agent.page.at(".field-content a")[:href]
root_img_url = URI.join(page_url,img_url).to_s
cover = File.basename(root_img_url)
file = File.open(File.join(Rails.root, 'app', 'assets', 'images', cover), 'wb') { |f|
    f.write(open(root_img_url).read)
}

某些图片的名称中有%26,如cover_b%26w_xyz_.jpg,当我将它们保存在我的数据库中,并希望在我的索引视图中看到它们时,它们不会出现,但是仍保存在assets / images文件夹中。

如何在将文件%26保存到数据库之前替换cover字符?

1 个答案:

答案 0 :(得分:3)

%26是由网址编码的&,因此您可以使用URI.decoded

cover = File.basename(URI.decode(root_img_url))
# cover is now 'cover_b&w_xyz_.jpg'