Ruby Forum Rails-ES > Codificación en rails 1.2.1? tild es y demás

Posted by Luis Villegas (Guest)
on 28.03.2007 12:26
(Received via mailing list)
Buenas, tengo un problemilla.
Estoy iniciando una nueva aplicación. Si pongo en environment.rb la 
versión
de rails 1.1.6 y en el html : <meta http-equiv="Content-Type"
content="text/html;charset=iso-8859-1" >, se ve todo correctamente, pero 
si
cambio la versión de rails a 1.2.1, los caracteres como eñes y tildes no
salen.

He leído por ahí que la última versión de rails usa utf 8, pero no sé 
como
decirle que use latin 1.
Alguna sugerencia?

Gracias
Posted by Luis felipe Hurtado campuzano (luisfelipehurtado)
on 28.03.2007 16:29
(Received via mailing list)
Yo le recomendaría manejar todo en UTF-8. Puede que sea un paradigma 
mío,
pero me ha funcionado bien.
http://www.lacoctelera.com/ror-lab/post/2007/03/22/poniendo-todo-utf-8

Saludos.

El día 28/03/07, Luis Villegas < luis.vilec@gmail.com> escribió:
Posted by Xavier Noria (Guest)
on 28.03.2007 17:16
(Received via mailing list)
On Mar 28, 2007, at 12:25 PM, Luis Villegas wrote:

> Buenas, tengo un problemilla.
> Estoy iniciando una nueva aplicación. Si pongo en environment.rb la  
> versión de rails 1.1.6 y en el html : <meta http-equiv="Content- 
> Type" content="text/html;charset=iso-8859-1" >, se ve todo  
> correctamente, pero si cambio la versión de rails a 1.2.1, los  
> caracteres como eñes y tildes no salen.

En esas versiones cambio el charset por defecto de la cabecera
Content-Type, que es el que manda en HTTP por encima del META (el
META esta pensado para archivos leidos de disco, para entendernos).

Antes se configuraba eso con un filtro en application.rb donde se
modificaba la cabecera a mano, pero en 1.2 esta encapuslado en

   config.action_controller.default_charset = 'iso-8859-1'

que se pone en el bloque de environment.rb donde van ese tipo de
cosas (si bien no lo he usado, habria que comprobar si por Ajax va
todo bien).

-- fxn
Posted by javier ramirez (Guest)
on 29.03.2007 09:46
(Received via mailing list)
>    config.action_controller.default_charset = 'iso-8859-1'
>
> que se pone en el bloque de environment.rb donde van ese tipo de  
> cosas (si bien no lo he usado, habria que comprobar si por Ajax va  
> todo bien).
yo estoy *casi* seguro de que en ajax funcionaría bien eso a la hora de
mostrar datos (al fin y al cabo el browser interpreta la parte de ajax
en el contexto de la página que contiene la definición del charset),
pero de lo que estoy seguro al 100% es de que si envías datos desde el
browser via ajax va a funcionar mal.

tal cual está implementado el serialize de Element en prototype.js, se
está utilizando una llamada javascript que convierte a utf-8 *siempre*.
La solución simple para esto es meter un before_filter que convierta de
utf-8  a iso-8859-1 los campos si se cumple request.xhr?.

La solución que menos problemas te va a dar es no ir contra corriente,
hacer caso del convention over configuration y trabajar en utf-8 aunque
en algunos casos el cuerpo te pida lo contrario (sobre todo si trabajas
con sistemas legacy donde la DB esté en iso)

saludos,

j

--
--------
Estamos de estreno... si necesitas llevar el control de tus gastos 
visita http://www.gastosgem.com !!Es gratis!!