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
on 28.03.2007 12:26
on 28.03.2007 16:29
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ó:
on 28.03.2007 17:16
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
on 29.03.2007 09:46
> 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!!