Это не действительный URI. Только определенные символы разрешены для URI. Кстати, Firefox, как и все браузеры, старается сделать для пользователя как можно больше, вместо того, чтобы жаловаться, когда он не выглядит стандартно.
Действует в следующей форме:
open("http://static.bleachexile.com/manga/gantz/273/Gantz%5B0273%5D_p001%5BWhatever-Illuminati%5D.png") # => #<File:/tmp/open-uri20100226-3342-clj08a-0>
Вы можете попытаться избежать этого следующим образом:
uri.gsub(/\/.*/) do |t|
t.gsub(/[^.\/a-zA-Z0-9\-_ ]/) do |c|
"%#{ c[0]<16 ? "0" : "" }#{ c[0].to_s(16).upcase }"
end.gsub(" ", "+")
end
Но будьте осторожны, если на сайте используются правильные экранированные URI, и вы избегаете их во второй раз. Ури больше не будет указывать на одно и то же место.