【问题标题】:Ruby unescape HTML stringRuby 转义 HTML 字符串
【发布时间】:2015-08-18 06:26:02
【问题描述】:
知道如何在 Ruby 中取消转义以下字符串吗?
C:\inetpub\wwwroot\adminWeb
到
C:\inetpub\wwwroot\adminWeb
或到
C%3A%5Cinetpub%5Cwwwroot%5CadminWeb
尝试使用URI.decode 没有成功。
【问题讨论】:
标签:
ruby
html-escape-characters
【解决方案1】:
CGI library 是一种选择:
require 'cgi'
CGI.unescapeHTML('C:\inetpub\wwwroot\adminWeb')
# => "C:\\inetpub\\wwwroot\\adminWeb"
【解决方案2】:
还有一个变种是HTMLEntities
HTMLEntities.new.decode "C:\inetpub\wwwroot\adminWeb"
# => "C:\\inetpub\\wwwroot\\adminWeb"
我更喜欢使用它,因为它可以处理å 和— 等罕见的情况,而CGI.unescapeHTML 却没有
【解决方案3】:
另一种方法是使用标准库的URI module:
require 'uri'
URI.unescape "C%3A%5Cinetpub%5Cwwwroot%5CadminWeb" # => "C:\\inetpub\\wwwroot\\adminWeb"