Techioz Blog

RailsでHTMLスクリプトをエンコードする

概要

HTMLスクリプトをエンコードしたい。

次のようなテキストがあります:

"<a href="https://www.w, <script></script>"

デコードだけしたい

&lt; and &gt; to < and >.

次のような方法があります。

def name
  a = [last_name.to_s + ',', first_name].compact.join(' ')
  Loofah.fragment(a).text(encode_special_chars: false) 
end

ただし、Loofah.fragment を使用すると、次のように表示されるすべての HTML スクリプト広告がデコードされます。

"<a href=\"https://www.w, <script></script>" but I want only < and >

誰か助けてくれませんか。

解決策

以下の例のように、場合によっては文字列置換メソッドを使用できます。

"&lt;a href=&quot;https://www.w, &lt;script&gt;&lt;/script&gt;".gsub("&lt;","<").gsub("&gt;",">")