Convertir caracteres especiales en html entities


#1

Hola gente estoy buscando como convertir caracteres no ASCII desde un
clase cualquiera.

He econtrado esto:

Y parece que va bien, pero quería preguntar si Rails ya viene con algo
parecido… sé que tiene que tenerlo pues al precargar los campos de un
formulario escapa correctamente los caracteres problemáticos como las
comillas ‘"’

He probado con CGI::escape

CGI::escape(“hola"hola”")
=> “hola%22hola%22”

Pero no me genera html entities.

Bueno… a ver quién el primero que me da con google en la cabeza :slight_smile:

Saludos
f.


#2

El día 15 de mayo de 2009 0:45, Fernando G.
removed_email_address@domain.invalid
escribió:

He probado con CGI::escape

CGI::escape(“hola"hola”")
=> “hola%22hola%22”

Joer… nada… ya me ha respondido el Alvaro B. por la lista
directa:

http://www.ruby-doc.org/core/classes/CGI.html#M000560

Lo tenía delante y ni me ha mordido ni nada.

f.


#3

2009/5/15 Fernando G. removed_email_address@domain.invalid:

He econtrado esto:

Y parece que va bien, pero quería preguntar si Rails ya viene con algo
parecido…

Compañero :slight_smile:

Para escapar caracteres no validos en HTML como “<” Rails usa un
metodo de ERb que pone disponible en las vistas como h().

Para escapar no-ASCII en general, por ejemplo obtener “ñ” de
“ñ”, hay que usar la gema.


#4

2009/5/15 Fernando G. removed_email_address@domain.invalid:

Sip… lo estuve mirando pero sólo convierte los <, > y los &:

HTML_ESCAPE Â Â = Â Â Â { ‘&’ => ‘&’, ‘>’ => ‘>’, ‘<’ => ‘<’, ‘"’
=> ‘"’ }

Para escapar no-ASCII en general, por ejemplo obtener “ñ” de
“ñ”, hay que usar la gema.

Al final como me dijo Alvaro B… puedo usar CGI::escapeHTML

No se si te entiendo… h() y CGI::escapeHTML hacen lo mismo.


#5

El día 15 de mayo de 2009 12:25, Xavier N. removed_email_address@domain.invalid
escribió:>>

Al final como me dijo Alvaro B… puedo usar CGI::escapeHTML

No se si te entiendo… h() y CGI::escapeHTML hacen lo mismo.

Madre mía… tienes
razón:

ERB::Util.h(‘hóla “sí sí”’)
=> “hóla “sí sí””

CGI::escapeHTML(‘hóla “sí sí”’)
=> “hóla “sí sí””

ERB::Util.html_escape(‘hóla “sí sí”’)
=> “hóla “sí sí””

En fín … que ando un poco espeso :), de todos modos esto me sirve.

Gracias again

f.


#6

El día 15 de mayo de 2009 8:51, Xavier N. removed_email_address@domain.invalid
escribió:> Para escapar caracteres no validos en HTML como “<” Rails usa un

metodo de ERb que pone disponible en las vistas como h().

Sip… lo estuve mirando pero sólo convierte los <, > y los &:

HTML_ESCAPE = { ‘&’ => ‘&’, ‘>’ => ‘>’, ‘<’ => ‘<’, ‘"’
=> ‘"’ }

Para escapar no-ASCII en general, por ejemplo obtener “ñ” de
“ñ”, hay que usar la gema.

Al final como me dijo Alvaro B… puedo usar CGI::escapeHTML

http://www.ruby-doc.org/core/classes/CGI.html#M000560

Gracias

f.