Hacer reporte que consuma una BD con encoding SQL_ASCII

Hola, queríamos aprovechar las funcionalidades del Pentaho y crear algunos reportes con el Pentaho Report Designer, es decir que consuma directamente de la base de datos de producción. El problema se nos presenta con las bases de datos con encoding SQL_ASCII ( como Mapuche por ejemplo) nos muestra mal los caracteres especiales (acentos, ñes , etc). Creemos que ya en la consulta se recuperan mal los datos. Con Latin1 y UTF-8 no tenemos problemas.

Alguien se topó con un problema similar? O saben si existe alguna configuración adicional en la conexión con la base de datos?

Muchísimas gracias, cualquier ayuda será bienvenida!

Gabriel Molinauskas

Dirección de Sistemas Informáticos
Dirección General de Tecnologías de la Información y Comunicación
Secretaria General
Universidad Nacional de Quilmes
Tel: 4365-7100 Int. 5440/5432/5433
Roque Saenz Peña 352 - Bernal

Hola Gabriel,
probaste en setear el client encoding para SQL_ASCII para el usuario de postgres con el que te conectás a la base?.
Te copio el link a una entrada del foro de Pentaho que habla sobre el tema (http://forums.pentaho.com/showthread.php?84345-Reading-from-PostgreSQL-database-with-SQL_ASCII-encoding&highlight=SQL_ASCII).

Saludos,

Marcos

Hola Gabriel. Si encontrás la manera de cambiar el encoding del reporter, buenísimo. Si no, te quedan las alternativas (creo que algo hablamos): hacer vistas con muchos replace, tener la base replicada, o conectarte a una base Wichi (incluso por sql).

No hemos implementado ninguna otra solución para ese tipo de situaciones.

Hola

Con sql_ascii está dificil

Segun
http://www.postgresql.org/docs/current/static/multibyte.html

[tr]
[td]Server Character Set[/td][td]Available Client Character Sets[/td]
[/tr]
[tr]
[td]SQL_ASCII[/td][td]any (no conversion will be performed)[/td]
[/tr]

Emilio

Perdón por reabrir un tema tan viejo, pero estoy en la misma situación:

Estoy queriendo acceder desarrollando una aplicación en Java (Hibernate + c3p0) a la base de datos de Mapuche, cuyo encoding está en SQL_ASCII. Y todos los acentos los recibo con un caracter cuyo valor en hexa es: 0xFFFD (es decir, se exede del rango).

No estoy pudiendo configurar la conexión para recibir los caracteres en UTF-8 o cualquier otro encoding. Por más que setee la variable de sesión CLIENT_ENCODING en UTF8, no parece tener efecto.

Ahora mis preguntas:

  1. ¿Alguien pudo avanzar satisfactoriamente con este tema?
  2. ¿Sabén por que las tablas de Mapuche están en SQL_ASCII, si los manuales de PostgreSQL indican explicitamente no usar este encoding?
  3. ¿Se podrán cambiar las tablas a UTF-8?

Desde ya, muchas gracias!

Hola Matías, nosotros por este tema y otras cuestiones terminamos armando los reportes directamente en una aplicación en el framework SIU Toba, por lo cual dejamos de tener este problema. Si es para hacer reportes y otras funcionalidades sobre sistemas SIU te lo recomiendo.

Pero en su momento, la gente del equipo SIU wichi nos había pasado una solución que por lo menos evitaba que los acentos se vean como un caracter ilegible. Lo que se tiene que hacer es crear una función en la BD para convertir a ascii, luego en la consulta tenés que invocar esta función donde podrías tener texto con acento, de esta forma se van a ver los caracteres pero sin acento. Deberías hacer esto:

Crear la función:
CREATE FUNCTION to_ascii(bytea, name)
RETURNS text STRICT AS ‘to_ascii_encname’ LANGUAGE internal;

Y luego en cada uno de los textos que pueden tener caracteres especiales invocarla, podés ves un ejemplo en el siguiente select:
select desc_item, to_ascii(convert_to(desc_item, ‘UTF8’),‘LATIN1’) as desc_item_visible from mapuche.dh30;

No es una solución definitiva pero por lo menos las consultas se van a ver de forma mas amigable.

Saludos

Gabriel