On 2/10/07, Damaris F. [email protected] wrote:
ó
Primero, recomiendo la lectura de
http://www.joelonsoftware.com/articles/Unicode.html.
Y ahora explicaciones, si el servidor o la cabecera meta content-type
determinan un charset el navegador del usuario enviará lo que el
usuario haya introducido en los formularios con ese charset. Si tu
página se envía en utf-8 los formularios volverán en utf-8, si las
páginas las mandas en iso-8859-1 los formularios volverán en
iso-8859-1. Al almacenarse en la base de datos y volver a la página
aparecerán correctamente.
Cuando dices que en la base de datos lo ves con caracteres “raros”, a
pesar de que no dices que base de datos ni como lo ves, supongo que
has guardado los datos codificados en utf-8 y los intentas ver como
iso-8859-1, que como son diferentes codificaciones, ves diferentes
resultados. Si haces un backup, no tocas el archivo de backup, y lo
vuelves a cargar no debería hacer nada raro.
De cualquier forma las codificaciones de caracteres es una cosa
bastante “complicadilla” ya que hay que establecerla y comprobarla en
muchos sitios. Lo que se envia desde el servidor, los archivos del
disco duro, la comunicación con la base de datos, el locale del
sistema operativo, el formato de almacenamiento de la base de datos,
… Como siempre al ser algo hecho por estadounidenses nunca piensan
demasiado en los demás, que no utilizamos únicamente sus letras.
Sobre lo del “@date” apareciendo mal, no se de donde viene @date, pero
posiblemente el usuario con el que corre el interprete de Ruby esté
configurado con un locale diferente con el que envias los datos desde
el servidor, y por eso al usuario le aparecen caracteres “raros”.
Personalmente siempre intento guardar y transmitir los datos en UTF8
ya que es un formato que permite su utilización por el rango
másgrande de personas sin muchos problemas y sin ocupar demasiado,
mientras que con ISO-8859-1, si bien los idiomas del oeste europeo
funcionarán sin problemas, los idiomas de Europa del Este y de Asia no
funcionarán.