Ruby 我如何替换";%26“;文件名?

Ruby 我如何替换";%26“;文件名?,ruby,nokogiri,mechanize,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

我正在使用以下工具保存已刮取的图像:

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_uu2;.jpg
,当我将它们保存在数据库中,并希望在索引视图中看到它们时,它们不会出现,但仍保存在资产/图像文件夹中


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

%26
是URL编码的
&
,因此您可以使用:


文件名没有出现在索引视图中,或者文件名中没有出现“&”?@mu_太短了,无法将%26转换为“&”,因此会出现图像。非常感谢。我有一个新问题。。。如何在字符之间使用空格来管理图像,如“cover xyz#.jpg”?当文件名返回HTML时,您通常会对其进行URI编码,这应该考虑空格。我尝试读取的文件名是:“Responsive'13#02 cover DOTS_0.jpg”。我使用URI::encode在数据库封面中打印名称,但是“'”仍然存在。我不理解这个问题。为什么
是个问题?也许你应该问另一个问题,其中包括有问题的文件名和你的视图代码是什么样子的。
cover = File.basename(URI.decode(root_img_url))
# cover is now 'cover_b&w_xyz_.jpg'