tag section script samp rails html ruby

script - sections in html



¿Cómo codifico/decodizo entidades HTML en Ruby? (7)

Creo que la gema Nokogiri también es una buena opción. Es muy estable y tiene una gran comunidad contribuyente.

Muestras:

a = Nokogiri::HTML.parse "foo bär" a.text => "foo bär"

o

a = Nokogiri::HTML.parse "¡I'm highly annoyed with character references!" a.text => "¡I''m highly annoyed with character references!"

Estoy intentando decodificar algunas entidades HTML, como ''&amp;lt;'' convirtiéndose en ''<'' .

Tengo una gema antigua ( html_helpers ) pero parece haber sido abandonada dos veces.

¿Alguna recomendación? Tendré que usarlo en un modelo.


Para codificar los personajes, puedes usar CGI.escapeHTML :

string = CGI.escapeHTML(''test "escaping" <characters>'')

Para decodificarlos, existe CGI.unescapeHTML :

CGI.unescapeHTML("test &quot;unescaping&quot; &lt;characters&gt;")

Por supuesto, antes de eso, debe incluir la biblioteca CGI:

require ''cgi''

Y si estás en Rails, no necesitas usar CGI para codificar la cadena. Ahí está el método h .

<%= h ''escaping <html>'' %>


Para decodificar personajes en Rails usa:

<%= raw ''<html>'' %>

Asi que,

<%= raw ''&lt;br&gt;'' %>

saldría

<br>


Puedes usar la gema htmlascii :

Htmlascii.convert string


Si no desea agregar una nueva dependencia solo para hacer esto (como HTMLEntities ) y ya está usando Hpricot , puede escaparse y escaparse por usted. Maneja mucho más que CGI :

Hpricot.uxs "foo&nbsp;b&auml;r" => "foo bär"


HTMLEntities puede hacerlo:

: jmglov@laurana; sudo gem install htmlentities Successfully installed htmlentities-4.2.4 : jmglov@laurana; irb irb(main):001:0> require ''htmlentities'' => [] irb(main):002:0> HTMLEntities.new.decode "&iexcl;I&#39;m highly&nbsp;annoyed with character references!" => "¡I''m highly annoyed with character references!"


<% str="<h1> Test </h1>" %> result: &lt; h1 &gt; Test &lt; /h1 &gt; <%= CGI.unescapeHTML(str).html_safe %>