Estoy tratando de decodificar algunas entidades HTML, como el '&lt;'devenir '<'.
Tengo una gema antigua ( html_helpers ) pero parece que la abandoné dos veces.
¿Alguna recomendación? Necesitaré usarlo en un modelo.
Estoy tratando de decodificar algunas entidades HTML, como el '&lt;'devenir '<'.
Tengo una gema antigua ( html_helpers ) pero parece que la abandoné dos veces.
¿Alguna recomendación? Necesitaré usarlo en un modelo.
Respuestas:
HTMLEntities puede hacerlo:
fuente
HTMLEntitiesgema se ocupa de casos comoåy—queCGI.unescapeHTMLno.Para codificar los caracteres, puede usar
CGI.escapeHTML:Para decodificarlos, hay
CGI.unescapeHTML:Por supuesto, antes de eso debes incluir la biblioteca CGI:
Y si estás en Rails, no necesitas usar CGI para codificar la cadena. Ahí está el
hmétodo.fuente
Creo que la gema Nokogiri también es una buena opción. Es muy estable y tiene una gran comunidad contribuyente.
Muestras:
o
fuente
CGI.escapeHTMLtal vez no pueda resolver algunos casos. Por otro lado, si necesita un conjunto completo de soporte, estoy seguro de queNokogiries una buena opción.CGI::escapeHTMLno se escapa de los caracteres alemanes como äöüß, y tal vez más ... Con Nokogiri aún no lo comprobé, pero esto sería un punto a favor.Para decodificar caracteres en Rails use:
Entonces,
saldría
fuente
#rawNo decodifica nada. Le dice a la vista que no codifique la cadena. Lo hace envolviendo la cadena en aActiveSupport::SafeBuffer, que a su vez tiene una bandera (html_safe?), establecida en verdadero. La vista usa este indicador para determinar que la cadena se puede inyectar directamente en el HTML sin escapar. Me gusta pensarhtml_safeque el programador indica que la cadena en cuestión ya se ha escapado correctamente.Si no desea agregar una nueva dependencia solo para hacer esto (como
HTMLEntities) y ya lo está utilizandoHpricot, puede escapar y no escapar por usted. Maneja mucho más queCGI:fuente
Puedes usar
htmlasciigema:fuente
fuente