Ich versuche , einige HTML - Entitäten, wie entschlüsseln '<'
werden '<'
.
Ich habe ein altes Juwel ( html_helpers ), aber es scheint zweimal aufgegeben worden zu sein.
Irgendwelche Empfehlungen? Ich werde es in einem Modell verwenden müssen.
Antworten:
HTMLEntities können es tun:
quelle
HTMLEntities
Juwel befasst sich mit Fällen wieå
und—
wasCGI.unescapeHTML
nicht.Um die Zeichen zu codieren, können Sie Folgendes verwenden
CGI.escapeHTML
:Um sie zu entschlüsseln, gibt es
CGI.unescapeHTML
:Zuvor müssen Sie natürlich die CGI-Bibliothek einbinden:
Und wenn Sie sich in Rails befinden, müssen Sie CGI nicht zum Codieren der Zeichenfolge verwenden. Da ist die
h
Methode.quelle
Ich denke, Nokogiri Juwel ist auch eine gute Wahl. Es ist sehr stabil und hat eine große beitragende Gemeinschaft.
Proben:
oder
quelle
CGI.escapeHTML
einige Fälle möglicherweise nicht gelöst werden. Auf der anderen Seite bin ich sicher, dass SieNokogiri
eine gute Wahl sind , wenn Sie umfassende Unterstützung benötigen .CGI::escapeHTML
Entgeht deutschen Schriftzeichen wie äöüß und vielleicht mehr nicht ... Mit Nokogiri habe ich noch nicht nachgesehen, aber das wäre ein Pluspunkt.Um Zeichen in Rails zu dekodieren, verwenden Sie:
So,
würde ausgeben
quelle
#raw
dekodiert nichts. Es weist die Ansicht an, die Zeichenfolge nicht zu codieren. Dazu wird die Zeichenfolge in a eingeschlossenActiveSupport::SafeBuffer
, für die wiederum ein Flag (html_safe?
) auf true gesetzt ist. Die Ansicht verwendet dieses Flag, um zu bestimmen, dass die Zeichenfolge direkt in den HTML-Code eingefügt werden kann, ohne dass sie maskiert wird. Ichhtml_safe
stelle mir das gerne als Hinweis des Programmierers vor, dass die betreffende Zeichenfolge bereits ordnungsgemäß maskiert wurde.Wenn Sie nicht nur zu diesem Zweck (wie
HTMLEntities
) eine neue Abhängigkeit hinzufügen möchten und diese bereits verwendenHpricot
, kann sie für Sie sowohl entkommen als auch entkommen. Es geht um viel mehr alsCGI
:quelle
Sie können
htmlascii
Edelstein verwenden:quelle
quelle