Ruby 转义 HTML 字符串

问题描述 投票:0回答:3

知道如何在 Ruby 中转义以下字符串吗?

C:\inetpub\wwwroot\adminWeb

C:\inetpub\wwwroot\adminWeb

C%3A%5Cinetpub%5Cwwwroot%5CadminWeb

尝试过

URI.decode
但没有成功。

ruby html-escape-characters
3个回答
21
投票

CGI
是一种选择:

require 'cgi'

CGI.unescapeHTML('C:\inetpub\wwwroot\adminWeb')
# => "C:\\inetpub\\wwwroot\\adminWeb"

6
投票

还有一个变体是 HTMLEntities

HTMLEntities.new.decode "C:\inetpub\wwwroot\adminWeb"             
# => "C:\\inetpub\\wwwroot\\adminWeb"

我更喜欢使用它,因为它处理罕见的情况,如

å
—
,而
CGI.unescapeHTML
则不处理


1
投票

另一种方法是使用标准库的 URI 模块:

require 'uri'
URI.unescape "C%3A%5Cinetpub%5Cwwwroot%5CadminWeb" # => "C:\\inetpub\\wwwroot\\adminWeb"

编辑 这个答案已经过时了。请检查此线程

© www.soinside.com 2019 - 2024. All rights reserved.