Re: Katari - Problemas Encoding

8 views
Skip to first unread message

Martin Olivera

unread,
Aug 31, 2011, 2:34:16 PM8/31/11
to Pablo Di Meglio, katar...@googlegroups.com
Gracias por el reporte Pablo, paso a la lista de Katari - de paso se podra incorporar a Pablo a la lista? cuales la URL para pedir acceso? tenemos varios nuevos katarianos (o kataristas?) en el equipo de educ.ar para sumar

El 31 de agosto de 2011 15:29, Pablo Di Meglio <pablo.d...@globant.com> escribió:

Buenas,

Se está utilizando Katari y estamos teniendo algunos problemas de encoding. La aplicación se está desarrollando sobre equipos Linux y equipos Windows, obteniendo diferencias en cada uno de los Sistemas Operativos.

Los problemas se dan principalmente al utilizar caracteres especiales ( acentos, ñ, etc.) y se podrían resumir en los siguientes:

 

1.       Al ingresar texto desde algún Input de la aplicación, los caracteres especiales son convertidos  de forma extraña en maquinas Windows: (Ingresando Matemática, se envía como  Matemática) por esta razón no estamos obteniendo resultados. En maquinas Linux esto no ocurre.

 

2.       Los caracteres especiales generados desde java, se ven mal en Windows, donde ”Matemática” se visualiza como  “matem?ica”. Revisamos la información de la pagina recibida y al parecer viene en UTF-8, por lo que sería el browser quien lo está interpretando de otra forma. Sobre Linux funciona correctamente, y en Windows utilizando un plugin de firefox que switchea los encoding, encodeando en UTF-8 se soluciona el problema.

 

 

3.       Estamos utilizando una base de datos local. Es un HSQLDB funcionando con archivos. Los datos dentro de la base son guardados con caracteres raros en lugar de los caracteres especiales. Debugeamos las clases de Katari: com.globant.katari.tools.SqlSentencesParser y com.globant.katari.tools.DatabaseTestSupport, verificando que el archivo .sql con los insert es levantado con los acentos correctamente. Suponemos debe haber algún problema al crear las tablas de la BD, utilizándose el encoding default del Sistema Operativo. De nuevo, en Linux se realizan correctamente los insert y al levantar los datos desde la aplicación se muestran bien.

Hay alguna manera de setear desde Katari el encoding con el cual se crean las Tablas de la Base de Datos? Según creemos El test TestDbSupport utiliza un .ddl que es generado a partir de las annotation HIbernate … se podrá generar este .ddl para que cree las tablas utilizando siempre el mismo encoding, independiente del Sistema Operativo?

 

4.       Dentro del proyecto hay algunos archivos (site.xml y index.jsp) los cuales están encodeados con ISO-8859-1, esto tendrá algo que ver?

 

Han tenido problemas similares anteriormente, de ser así, alguna pista sobre cuáles pueden ser los causantes de los problemas? O alguna posible solución?

 

Desde ya muchas gracias!

 

 

 

 


Pablo Graña

unread,
Aug 31, 2011, 6:42:24 PM8/31/11
to katar...@googlegroups.com, Pablo Di Meglio
Hola. La lista es un grupo estandar de google groups, no corporativo.
Que los chicos que quieran se registren normalmente.

De todos modos, algunos mails de globant han tenido problemas p/
registrarse, asi que si falla, mandenme mail a mi que yo los invito.

saludos

2011/8/31 Martin Olivera <martin....@globant.com>:

> --
> You received this message because you are subscribed to the Google Groups
> "katari-user" group.
> To post to this group, send email to katar...@googlegroups.com.
> To unsubscribe from this group, send email to
> katari-user...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/katari-user?hl=en.
>

--
Pablo Gra\~na
Chief Architect
Globant
Arg Office: +54 (11) 4109 1743
UK  Office: +44 (20) 7043 8269 int 8043
US  Office: +1 (212) 400 7686 int 8043

Pablo Graña

unread,
Sep 1, 2011, 8:50:07 AM9/1/11
to katar...@googlegroups.com
Te voy comentando el tema del encoding.

Katari tiene, hasta donde yo se, todo lo necesario para que los
caracteres especiales se vean realmente como corresponde. Lo que
hicimos fue elegir utf-8 en todo lo que sea comunicacion con el mundo
exterior (browser, db, etc).

Por otro lado, la aplicacion tiene que estar armada para soportar
correctamente utf-8. Voy comentando en tu caso lo que me ocurre que
hay para mirar:

1- Normalmente, el browser envia al servidor (cuando se postea un
form), los datos encodeados en el mismo encoding en el que recibio el
formulario (de hecho, h/ donde se, esto no es estrictamente estandar,
pero parece ser el comportamiento normal). Asi que lo que hay que
garantizar es que el browser este entendiendo que el formulario se
esta interpretando como utf-8. La version 0.34 de katari genera los
archetypes con esto ya configurado, pero creo que desde la anterior
eso no pasaba. Lo que hay que hacer es agregar en todas las paginas
esto:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Esto se hace en el decorator (x.dec) del modulo de style.

2- Hay que asegurarse que el browser entienda que la pagina esta en
utf-8. Para esto, hay que decirle (sin plugins) que utilice el
encoding por default, y ver que este realmente usando utf8.

Por otro lado, de donde viene la info? Si viene del file system, hay
que asegurarse que el encoding en el que se lee el archivo sea el
correcto. Por ejemplo, si en el fs tenemos una pagina html en
castellano con acentos, si la leemos desde windows (no recuerdo que
encoding usa por default, me suena algo como 1050, es parecido al
latin-1) se a ver diferente a si la leemos desde linux (ubuntu, por
ejemplo, usa utf-8).

La mejor opcion es escapear todas las entities en los html (los que
estan en el fs) para evitar el problema de encoding.

Por otro lado, si tenes .properties, hay que acordarse de pasarlos por
el native2asii.

Si viene de algo relacionado con el item 1, puede que resolviendo el
item 1 ya este.

3- Ni idea. Googleando aparecio textdb.encoding, file.encoding and
sqlresult.charset.

4- Yo marcaria el encoding de todos esos archivos en utf-8, pero haria
que el contenido sea '7-bit ascii', es decir, todas las entities
escapeadas (&blah;) y el equivalente en xml.

saludos

2011/8/31 Martin Olivera <martin....@globant.com>:

Reply all
Reply to author
Forward
0 new messages