我正在尝试解码一些HTML实体,例如'&lt;'变成'<'。我有一个旧宝石(html_helpers),但它似乎已经被遗弃了两次。有什么建议吗?我需要在模型中使用它。
'&lt;'
'<'
j91ykkif1#
要对字符进行编码,可以使用CGI.escapeHTML:
CGI.escapeHTML
string = CGI.escapeHTML('test "escaping" <characters>')
为了解码它们,存在CGI.unescapeHTML:
CGI.unescapeHTML
CGI.unescapeHTML("test "unescaping" <characters>")
当然,在此之前,您需要包含CGI库:
require 'cgi'
如果你使用Rails,你不需要使用CGI来编码字符串,这里有h方法。
h
<%= h 'escaping <html>' %>
bnlyeluc2#
HTMLEntities可以做到:
: jmglov@laurana; sudo gem install htmlentities Successfully installed htmlentities-4.2.4 : jmglov@laurana; irb irb(main):001:0> require 'htmlentities' => [] irb(main):002:0> HTMLEntities.new.decode "¡I'm highly annoyed with character references!" => "¡I'm highly annoyed with character references!"
gxwragnw3#
我认为Nokogiri gem也是一个不错的选择,它非常稳定,并且有一个巨大的贡献社区。样品:
a = Nokogiri::HTML.parse "foo bär" a.text => "foo bär"
或
a = Nokogiri::HTML.parse "¡I'm highly annoyed with character references!" a.text => "¡I'm highly annoyed with character references!"
klh5stk14#
要在Rails中解码字符,请使用:
<%= raw '<html>' %>
所以,
<%= raw '<br>' %>
将输出
<br>
jgovgodb5#
如果你不想为此添加一个新的依赖项(比如HTMLEntities),并且你已经在使用Hpricot,它可以为你进行转义和反转义,它处理的远不止CGI:
HTMLEntities
Hpricot
CGI
Hpricot.uxs "foo bär" => "foo bär"
mzaanser6#
您可以使用htmlascii gem:
htmlascii
Htmlascii.convert string
z9ju0rcb7#
在Rails中我们可以使用:ERB::Util.html_escape和ERB::Util.url_encode。在视图中,它们的别名为h和uhttp://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB/Util.html
ERB::Util.html_escape
ERB::Util.url_encode
u
gojuced78#
<% str="<h1> Test </h1>" %> result: < h1 > Test < /h1 > <%= CGI.unescapeHTML(str).html_safe %>
8条答案
按热度按时间j91ykkif1#
要对字符进行编码,可以使用
CGI.escapeHTML
:为了解码它们,存在
CGI.unescapeHTML
:当然,在此之前,您需要包含CGI库:
如果你使用Rails,你不需要使用CGI来编码字符串,这里有
h
方法。bnlyeluc2#
HTMLEntities可以做到:
gxwragnw3#
我认为Nokogiri gem也是一个不错的选择,它非常稳定,并且有一个巨大的贡献社区。
样品:
或
klh5stk14#
要在Rails中解码字符,请使用:
所以,
将输出
jgovgodb5#
如果你不想为此添加一个新的依赖项(比如
HTMLEntities
),并且你已经在使用Hpricot
,它可以为你进行转义和反转义,它处理的远不止CGI
:mzaanser6#
您可以使用
htmlascii
gem:z9ju0rcb7#
在Rails中我们可以使用:
ERB::Util.html_escape
和ERB::Util.url_encode
。在视图中,它们的别名为
h
和u
http://ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB/Util.html
gojuced78#