22

嗨,有与 JavaScript 方法等效的 rubyencodeURIComponent​​ 方法吗?我正在使用,URI.unescape(str)但它识别 "£"(之后encodeURIComponent它变成"%C2%A3")作为一个"?"标志。任何解决方案?谢谢

4

4 回答 4

31
URI.escape(foo, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))

在这里找到:如何在 JavaScript 和 Ruby 中对原始 URL 进行编码/解码以在两者中获得相同的值?

于 2010-05-18T14:58:30.590 回答
12

CGI.escape应该正确转义,除了空格被转义为+.

请注意,URI.escape在 Ruby 1.9.2 中已弃用...

对于那些感兴趣的人,有一个关于 ruby​​-core的长时间讨论。

于 2010-05-18T16:17:30.103 回答
11

我认为最简单的方法是URI.encode_www_form_component.

于 2013-01-31T10:31:53.687 回答
-1

URI.escape

于 2010-05-18T14:54:21.453 回答