【问题标题】:Ruby equivalent to JavaScript’s encodeURIComponent that produces identical output? [duplicate]Ruby 相当于 JavaScript 的 encodeURIComponent 产生相同的输出? [复制]
【发布时间】:2011-02-20 22:46:07
【问题描述】:

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

【问题讨论】:

    标签: javascript ruby escaping encode


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      对于那些感兴趣的人,on ruby-core 进行了长时间的讨论。

      【讨论】:

        【解决方案3】:
        URI.escape(foo, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
        

        在这里找到:How do I raw URL encode/decode in JavaScript and Ruby to get the same values in both?

        【讨论】:

        • 可以说我有一个 str = "£" 我在 javascript 中使用 encodeURIComponent(str),但是当我在 ruby​​ 中使用 URI.unescape(str) 并且该字符串返回为 str = "? ”。所以有区别
        • URI.escape 已过时,不应使用。
        【解决方案4】:

        【讨论】:

        • 可以说我有一个 str = "£" 我在 javascript 中使用 encodeURIComponent(str),但是当我在 ruby​​ 中使用 URI.unescape(str) 并且该字符串返回为 str = "? ”。所以有区别。
        猜你喜欢
        • 2010-10-11
        • 2020-04-25
        • 2014-10-23
        • 1970-01-01
        • 2018-01-22
        • 1970-01-01
        • 1970-01-01
        • 2015-01-19
        • 1970-01-01
        相关资源
        最近更新 更多