On Oct 30, 2006, at 8:57 PM, Sebs Sebastian wrote:
BD los coloca correctamente, pero en los titulos de las plantillas
(por
ej) no coloca las “Ñ” ni los acentos.
Es importante que todo este cuadrado a una codificacion. Hoy en dia
se recomienda en general trabajar con UTF-8 (en Rails 1.2 el Content-
Type llevara UTF-8 por defecto, y UTF-8 es la codificacion por
defecto en llamadas Ajax por enviarse XML), aunque lo importante es
escoger algo y ser consistente.
Esto es, la cabecera Content-Type debe llevar charset=utf-8 para
respuestas text/html y text/javascript (para ello se suele meter un
filtro en ApplicationController). Aunque es redundante sobre el
papel, a la practica se recomienda repetir el charset en un META de
la pagina misma, normalmente eso va en un layout. Esto afecta en el
cliente tanto a la codificacion usada para mostrar informacion como a
la usada para enviarla.
La base de datos ha de estar configurada con el mismo encoding (y una
collation adecuada), y el driver ha de usarlo, para ello hay una
propiedad “encoding” para el database.yml, su valor depende del
adaptador y para MySQL es “utf8”:
development:
adapter: mysql
database: foo_development
username: bar
password: baz
host: localhost
encoding: utf8
Ademas, el plugin Unicode Hacks se encarga de asegurar que aunque la
conexion se reestablezca el encoding se ponga seguro, cosa que segun
parece no sucede sin mas. Unicode Hacks provee tambien de un filtro
que normaliza los parametros antes de procesarlos.
En el caso de UTF-8 hay que poner en environment.rb
$KCODE = ‘u’
y cargar la libreria estandard ‘jcode’ si se quiere cierto soporte en
la API de cadenas, o bien instalar el plugin Unicode Hacks que
mencione antes, que ofrece tambien algo parecido.
Por ultimo, para que tus propios literales esten correctamente
codificados has de configurar el editor con el encoding escogido.
Si pones cuidado en esos pocos puntos va solo y bien.
– fxn