你好,有没有与JavaScript的encodeURIComponent
方法相对应的Ruby方法?我正在使用 URI.unescape(str)
,但是它将 "£"
(在encodeURIComponent
之后变成"%C2%A3"
)识别为"?"
号。有什么解决办法吗?谢谢。
你好,有没有与JavaScript的encodeURIComponent
方法相对应的Ruby方法?我正在使用 URI.unescape(str)
,但是它将 "£"
(在encodeURIComponent
之后变成"%C2%A3"
)识别为"?"
号。有什么解决办法吗?谢谢。
URI.escape(foo, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
这里找到了一个解决方案:如何在JavaScript和Ruby中进行原始URL编码/解码以获得相同的值?
我发布这篇文章时,URI.escape已经过时。根据建议的评论,现在可以使用ERB :: Util.url_encode
或CGI.escape
CGI.escape
应正确转义,但空格会被转义成 +
。
需要注意的是,在 Ruby 1.9.2 中,URI.escape
已过时...
对于有兴趣的人,可以在 ruby-core 上找到有关此问题的长时间讨论。
URI.escape
已经过时,不应再使用。 - Michiel de MareERB::Util.url_encode
或者CGI.escape
,尽管这两种解决方案都不完美。 - presentformyfriends