url在红宝石中的代码?

wef*_*weg 57 ruby

我该如何改造?

www.bestbuy.com/site/Electronics\Audio\abcat0200000.c=3fid=3dabcat0200000
Run Code Online (Sandbox Code Playgroud)

进入原来的格式?

www.bestbuy.com/site/Electronics/Audio/abcat0200000.c?id=abcat0200000
Run Code Online (Sandbox Code Playgroud)

urldecode吗?

mer*_*ove 152

更好的方法是CGI.unescape:
不推荐使用URI.unescape

decoded_uri = CGI.unescape(encoded_uri)
Run Code Online (Sandbox Code Playgroud)

  • 来自[`URI.unescape`]的最新Ruby文档(http://ruby-doc.org/stdlib-2.5.1/libdoc/uri/rdoc/URI/Escape.html):"此方法已过时,应该不要使用.而是使用[CGI.unescape](https://ruby-doc.org/stdlib-2.5.1/libdoc/cgi/rdoc/CGI/Util.html#method-i-unescape),[URI .decode_www_form](http://ruby-doc.org/stdlib-2.5.1/libdoc/uri/rdoc/URI.html#method-c-decode_www_form)或[URI.decode_www_form_component](http:// ruby​​-doc .org/stdlib-2.5.1/libdoc/uri/rdoc/URI.html#method-c-decode_www_form_component)取决于您的具体用例." (3认同)
  • 为什么不使用`CGI.unescape`呢? (2认同)

tok*_*khi 24

通过decode:

require 'uri'
URI.decode(encoded_uri)
Run Code Online (Sandbox Code Playgroud)


Rob*_*her 20

相当于urldecodeRuby中的PHP CGI::unescape.


bob*_*nce 6

好吧的东西=3f=3d引用可打印的编码.Ruby可以使用该.unpack("M")方法对其进行解码.

反斜杠?他们只是奇怪和错误.将字符串替换它们可能是安全的,/因为反斜杠不应该在URL中开头.