Forum: Rails-ES Convertir caracteres especiales en html entities

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Fernando G. (Guest)
on 2009-05-15 02:46
(Received via mailing list)
Hola gente estoy buscando como convertir caracteres no ASCII desde un
clase cualquiera.

He econtrado esto:
* http://htmlentities.rubyforge.org/

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 :)

Saludos
f.
Fernando G. (Guest)
on 2009-05-15 03:04
(Received via mailing list)
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.
Xavier N. (Guest)
on 2009-05-15 10:52
(Received via mailing list)
2009/5/15 Fernando G. <removed_email_address@domain.invalid>:

> He econtrado esto:
> * http://htmlentities.rubyforge.org/
>
> Y parece que va bien, pero quería preguntar si Rails ya viene con algo
> parecido..

Compañero :)

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 "&ntilde;" de
"ñ", hay que usar la gema.
Fernando G. (Guest)
on 2009-05-15 13:25
(Received via mailing list)
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    =    { '&' => '&amp;', '>' => '&gt;', '<' => '&lt;', '"'
=> '&quot;' }

>
> Para escapar no-ASCII en general, por ejemplo obtener "&ntilde;" 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.
Xavier N. (Guest)
on 2009-05-15 14:26
(Received via mailing list)
2009/5/15 Fernando G. <removed_email_address@domain.invalid>:

> Sip.. lo estuve mirando pero sólo convierte los <, > y los &:
>
> HTML_ESCAPE     =       { '&' => '&amp;', '>' => '&gt;', '<' => '&lt;', '"'
> => '&quot;' }
>
>>
>> Para escapar no-ASCII en general, por ejemplo obtener "&ntilde;" 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.
Fernando G. (Guest)
on 2009-05-15 14:43
(Received via mailing list)
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 &quot;sí sí&quot;"
>> CGI::escapeHTML('hóla "sí sí"')
=> "hóla &quot;sí sí&quot;"
>> ERB::Util.html_escape('hóla "sí sí"')
=> "hóla &quot;sí sí&quot;"

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

Gracias again

f.
This topic is locked and can not be replied to.