動かざることバグの如し

近づきたいよ 君の理想に

RubyでHTMLの特殊文字をエスケープしたい

やりたいこと

&& に変換したい またはその逆

コード

Rubyにはcgiモジュールが標準で入っているので CGI.escapeHTML を使う

require 'cgi'
CGI.escapeHTML '<a> &'
# => "&lt;a&gt; &amp;"

逆もまた然り CGI.unescapeHTMLを使えばおk

irb(main):016:0> CGI.unescapeHTML "&lt;a&gt; &amp;"
=> "<a> &"

注意点

悪名高いno-break spaceは対象外なので注意

irb(main):011:0> CGI.unescapeHTML "\u00A0"
=> " "

&nbsp; になるわけではない

参考リンク