何を使って実装するのが妥当なのか。
Oga と htmlentities は String#gsub
での置換で実装されている。
一方で Nokogiri はパースしてからテキストノードの値として取得する実装っぽい。
Oga を使っているなら Oga を使い、そうでないなら、htmlentities を入れて使うのが手頃だろうか。
CGI.unescape_html
文字参照は & > < "
のみ対応。
CGI.unescape_html('©') # => "©"
CGI.unescape_html('&') # => "&"
CGI.unescape_html(' ') # => "\n"
gem: htmlentities
HTMLEntities.new.decode('©') # => "©"
HTMLEntities.new.decode('&') # => "&"
HTMLEntities.new.decode(' ') # => "\n"
gem: Nokogiri
Nokogiri::HTML.parse('©').text # => "©"
Nokogiri::HTML.parse('&').text # => "&"
Nokogiri::HTML.parse(' ').text # => "\n"
gem: Oga
YorickPeterse/oga: Oga is an XML/HTML parser written in Ruby.
Oga::HTML::Entities.decode('©') # => "©"
Oga::HTML::Entities.decode('&') # => "&"
Oga::HTML::Entities.decode(' ') # => "\n"