【问题标题】:Rails: base64 and character escaping problemRails:base64 和字符转义问题
【发布时间】:2010-07-22 14:58:12
【问题描述】:

在我的应用程序中,我需要通过 base64 对字符串进行编码,转义可能的特殊字符并将其放入 URL。

我执行以下操作:

string = "random_email@server.com"

enc = OpenSSL::Cipher::Cipher.new('DES-EDE3-CBC')
enc.encrypt('dummy_salt')
encoded = URI.escape(Base64.encode64(enc.update(string) << enc.final))

问题是,URI.escape 不会以某种方式转义 '/' 字符。如果编码字符串打算用作 URL 参数,这是完全不可接受的。

URI.escape 怎么会忽略转义 '/'?我应该使用任何其他.escape 然后一个,它来自URI?或者我什至应该使用其他编码方法(不这么认为)?

也欢迎对代码提出任何建议。

【问题讨论】:

    标签: ruby-on-rails ruby escaping uri base64


    【解决方案1】:

    改用CGI.escape :-)

    require 'cgi'
    puts CGI.escape('/') # => "%2F"
    

    【讨论】:

      【解决方案2】:

      如果你需要转义html你也可以这样做:

      CGI::escapeHTML('Usage: foo "bar" <baz>')
      
      "Usage: foo &quot;bar&quot; &lt;baz&gt;"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 2011-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多