CGI.escapeHTML
est assez mauvais, mais CGI.unescapeHTML
est complètement borked. Par exemple:Existe-t-il un meilleur outil d'échappement et de suppression de l'échappement HTML que CGI pour 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 "…"
Il semble que unescapeHTML
connaît tous les codes numériques, plus &
, <
, >
et "
. Et escapeHTML
ne sait que sur ces quatre derniers - il ne fait aucun des codes numériques. Je comprends que l'échappement n'a généralement pas besoin d'être aussi robuste puisque HTML autorisera les versions littérales de la plupart des caractères à l'exception des quatre que connaît CGI.escapeHTML
. Mais décourager devrait vraiment être meilleur.
Y at-il un meilleur outil là-bas, au moins pour l'échappement?
Il ne gère pas — non plus. – Chloe