与 Javascript 的 escape() 函数完全相同的 Ruby 等价物
考虑一下字符串: ` ( ?
Javascript 的 escape()
对其进行编码,如下所示:
escape("` ( ?")
"%60%20%28%20%3F"
如何在 Ruby 中实现相同的效果?我尝试的任何方法都不起作用:
[Dev]> CGI.escape("` ( ?")
=> "%60+%28+%3F"
[Dev]> URI.encode("` ( ?")
=> "%60%20(%20?"
[Dev]> Addressable::URI.encode("` ( ?")
=> "%60%20(%20?"
Consider the string: ` ( ?
Javascript's escape()
encodes it like this:
escape("` ( ?")
"%60%20%28%20%3F"
How can I achieve the same effect in Ruby? Nothing I try works:
[Dev]> CGI.escape("` ( ?")
=> "%60+%28+%3F"
[Dev]> URI.encode("` ( ?")
=> "%60%20(%20?"
[Dev]> Addressable::URI.encode("` ( ?")
=> "%60%20(%20?"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ERB::Util.url_encode
会做到这一点:ERB::Util.url_encode
will do it:URI::encode
还采用正则表达式来匹配需要转义的不安全字符;您可以传递匹配任何字符的正则表达式:顺便说一下,来自 Mozilla 开发者网络:
URI::encode
also takes a regex to match unsafe characters which need to be escaped; you can just pass a regex matching any character:By the way, from the Mozilla Developer Network: