Ruby相当于生成相同输出的JavaScript的encodeURIComponent?

Mo.*_*Mo. 21 javascript ruby encode escaping

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

die*_*rre 31

URI.escape(foo, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
Run Code Online (Sandbox Code Playgroud)

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

  • `URI.escape` 已过时,不应使用。 (2认同)

Mar*_*une 10

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

请注意,URI.escapeRuby 1.9.2中已弃用...

对于那些感兴趣的人,有一个关于ruby-core的长期讨论.


fph*_*ipe 9

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