CGI.escapeHTML
jest dość źle, ale CGI.unescapeHTML
jest całkowicie zdewastowany. Na przykład:Czy jest lepsze narzędzie do przechwytywania i usuwania HTML niż CGI dla 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 "…"
Wydaje się, że unescapeHTML
wie o wszystkich kodów numerycznych oraz &
, <
, >
i "
. A escapeHTML
zna tylko te ostatnie cztery - nie wykonuje żadnego z kodów numerycznych. Rozumiem, że generowanie poleceń generalnie nie musi być tak solidne, ponieważ HTML zezwala na dosłowne wersje większości znaków poza tymi czterema, o których wie, że są one znane. Ale zejście na prostą powinno być naprawdę lepsze.
Czy istnieje lepsze narzędzie, przynajmniej do tego, aby je usunąć?
To nie obsługuje — albo. – Chloe