J'essaie de décoder certaines entités HTML, comme '<'
devenir '<'
.
J'ai un vieux bijou ( html_helpers ) mais il semble avoir été abandonné deux fois.
Des recommandations? Je devrai l'utiliser dans un modèle.
J'essaie de décoder certaines entités HTML, comme '&lt;'
devenir '<'
.
J'ai un vieux bijou ( html_helpers ) mais il semble avoir été abandonné deux fois.
Des recommandations? Je devrai l'utiliser dans un modèle.
Réponses:
Les HTMLEntities peuvent le faire:
la source
HTMLEntities
gemme traite des cas tels queå
et—
quiCGI.unescapeHTML
ne le font pas.Pour encoder les caractères, vous pouvez utiliser
CGI.escapeHTML
:Pour les décoder, il y a
CGI.unescapeHTML
:Bien sûr, avant cela, vous devez inclure la bibliothèque CGI:
Et si vous êtes dans Rails, vous n'avez pas besoin d'utiliser CGI pour encoder la chaîne. Voilà la
h
méthode.la source
Je pense que le joyau de Nokogiri est également un bon choix. Il est très stable et possède une énorme communauté de contribution.
Échantillons:
ou
la source
CGI.escapeHTML
être pas résoudre certains cas. D'un autre côté, si vous avez besoin d'un support complet, je suis sûr queNokogiri
c'est un bon choix.CGI::escapeHTML
n'échappe pas aux personnages allemands comme äöüß, et peut-être plus ... Avec Nokogiri, je n'ai pas encore vérifié, mais ce serait un avantage.Pour décoder des caractères dans Rails, utilisez:
Alors,
sortirait
la source
#raw
ne décode rien. Il indique à la vue de ne pas coder la chaîne. Pour ce faire, il encapsule la chaîne dans unActiveSupport::SafeBuffer
, qui à son tour a un indicateur (html_safe?
), défini sur true. La vue utilise cet indicateur pour déterminer que la chaîne peut être injectée directement dans le code HTML sans être échappée. J'aime à considérerhtml_safe
comme une indication par le programmeur que la chaîne en question a déjà été correctement échappée.Si vous ne voulez pas ajouter une nouvelle dépendance juste pour faire cela (comme
HTMLEntities
) et que vous l'utilisez déjàHpricot
, elle peut à la fois s'échapper et s'échapper pour vous. Il gère bien plus queCGI
:la source
Vous pouvez utiliser
htmlascii
gem:la source
la source