Ruby URI :: InvalidURIError:除了编码之外的坏URI(不是URI?)

Aks*_*hat 4 ruby uri ruby-on-rails

我知道这是一个常见的错误,我正在使用一个已知的解决方案,但它仍然给我同样的错误:

require 'open-uri'
url = "http://website.com/dirs/filex[a]"

safeurl = URI.parse(URI.encode(url))
...
Run Code Online (Sandbox Code Playgroud)

给 URI::InvalidURIError: bad URI(is not URI?):

我知道它[和]造成这个的人物.但URI.encode没有做任何事情

我究竟做错了什么?

Joh*_*tts 14

我认为你的意思是要求uri,而不是开放式的uri.此外,根据文档,您可以指定第二个参数,其中包含要编码的额外字符.试着去[]那里.

该解决方案的代码是:

safeurl = URI.parse(URI.encode(url, "[]"))
Run Code Online (Sandbox Code Playgroud)