CGI.escapeHTML
ist ziemlich schlecht, aber CGI.unescapeHTML
ist komplett borked. Zum Beispiel:Gibt es ein besseres HTML-Escaping- und Unescaping-Tool als CGI für Ruby?
require 'cgi'
CGI.unescapeHTML('…')
# => "…" # correct - an ellipsis
CGI.unescapeHTML('…')
# => "…" # should be "…"
CGI.unescapeHTML('¢')
# => "\242" # correct - a cent
CGI.unescapeHTML('¢')
# => "¢" # should be "\242"
CGI.escapeHTML("…")
# => "…" # should be "…"
Es scheint, dass unescapeHTML
weiß über all die numerischen Codes sowie &
, <
, >
und "
. Und escapeHTML
kennt nur die letzten vier - es macht keinen der numerischen Codes. Ich verstehe, dass das Entkommen im Allgemeinen nicht so robust sein muss, da HTML die literalen Versionen der meisten Zeichen erlaubt, außer den vier, die CGI.escapeHTML
kennt. Aber Unescaping sollte wirklich besser sein.
Gibt es ein besseres Tool, zumindest für Unescaping?
Es behandelt nicht — entweder. – Chloe