Problemas de Codificación de caracteres en base de datos Postgres

Hola, estamos ya con el G3 migrado desde el G2, cabe mencionar que estamos con la soga al cuello, ya que NO contamos con el G2, El problema es que todos los acentos y “Ñ” aparecen con caracteres raros, la base de guarani esta en LATIN1, el client_encoding esta saeteado en LATIN1, pero en el Guaraní se ve todas las palabras con acentos con caracteres extraños. Hice un GDS y la respuesta es que la Base de Datos debe estar en UTF-8, en fin hicimos el cambio y todo quedo muy bonito, pero algunas operaciones del sistema no funcionan, como por ejemplo la de Escalas de Notas.
En fin, en que codificación tiene que estar la base para que los acentos, “Ñ” y las operaciones funcionen como deben… Necesitamos Urgente por el hecho que estamos hoy con el Guarani3 en producción y la gente esta con los nervios de punta.

Si tienen alguna idea mas, les agradecería mucho!

Hola Ricardo,

Qué problema tienen en la operación de escalas de notas?

Saludos, Florencia.

Aquí te paso errores de dos operaciones, hay mas, pero todos son iguales!

Saludos!


guarani1.png

guarani1.png

guarani2.png

guarani2.png

Ricardo,

Crearon la BD con encoding LATIN1 y luego la convirtieron a UTF8? Cómo hicieron la conversión?

Saludos, Florencia.

Hola, No, se crea la base directamente en UTF-8, vimos los errores en el sistema y la pasamos a LATIN1, pero ahora la vemos con los acentos y Ñ mal. Actualmente la pasamos de vuelta a UTF-8

Saludos!

Ricardo, si miras en las tablas de G2 que estan en el esquema mig de la base de Guarani 3, ahi los datos que tienen ñ y acentos los ves mal?
Podes ver la tabla mig.sga_personas en los campos apellido/nombres… seguramente alguno tiene ñ o acento…

Hola Ale, cómo estás? si se ven los acentos y comas, el tema es en el guarani 3 que muestra todos, hasta los nombres del menú con caracteres extraños.

Saludos!

Hola Ricardo

Que version de guarani y php tienen en esa instalacion?

Emilio

Hola Emilio, como andas? el guaraní es el 3.10.1, y el php es 5.4.41.
muchas gracias emilio!!

Probaron con una pagina php simple de conectarse y pedir los datos?

Ademas, intentaron cambiar el encoding que figura en bases.ini?

La base de Informix, en que enconding estaba?
Hay que verificar que el seteo del encoding en la conexion desde el Kettle al Informix y al Postgres se corresponda con cada base.

Hola Ale, como andas? como puedo ver cual es el enconding del kettle?

Saludos!

En el kettle, en la conexión de postgres, hacer doble click, ir a la opción Advanced, debajo de Enter the SQL statements(…):

Hola emilse, me da error, al probar la conexión.


Error al conectar a la base de datos [conexion_pg] :org.pentaho.di.core.exception.KettleDatabaseException: 
Error occured while trying to connect to the database

Couldn't execute SQL: SET client_encoding = LATIN1

The server's client_encoding parameter was changed to LATIN1. The JDBC driver requires client_encoding to be UTF8 for correct operation.


org.pentaho.di.core.exception.KettleDatabaseException: 
Error occured while trying to connect to the database

Couldn't execute SQL: SET client_encoding = LATIN1

The server's client_encoding parameter was changed to LATIN1. The JDBC driver requires client_encoding to be UTF8 for correct operation.


	at org.pentaho.di.core.database.Database.normalConnect(Database.java:428)
	at org.pentaho.di.core.database.Database.connect(Database.java:361)
	at org.pentaho.di.core.database.Database.connect(Database.java:314)
	at org.pentaho.di.core.database.Database.connect(Database.java:302)
	at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:80)
	at org.pentaho.di.core.database.DatabaseMeta.testConnection(DatabaseMeta.java:2685)
	at org.pentaho.ui.database.event.DataHandler.testDatabaseConnection(DataHandler.java:546)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke(AbstractXulDomContainer.java:313)
	at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:157)
	at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke(AbstractXulComponent.java:141)
	at org.pentaho.ui.xul.swt.tags.SwtButton.access$500(SwtButton.java:43)
	at org.pentaho.ui.xul.swt.tags.SwtButton$4.widgetSelected(SwtButton.java:138)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
	at org.eclipse.jface.window.Window.open(Window.java:796)
	at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:389)
	at org.pentaho.ui.xul.swt.tags.SwtDialog.show(SwtDialog.java:318)
	at org.pentaho.di.ui.core.database.dialog.XulDatabaseDialog.open(XulDatabaseDialog.java:116)
	at org.pentaho.di.ui.core.database.dialog.DatabaseDialog.open(DatabaseDialog.java:59)
	at org.pentaho.di.ui.spoon.delegates.SpoonDBDelegate.editConnection(SpoonDBDelegate.java:87)
	at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:3052)
	at org.pentaho.di.ui.spoon.Spoon.doubleClickedInTree(Spoon.java:2987)
	at org.pentaho.di.ui.spoon.Spoon.access$2400(Spoon.java:338)
	at org.pentaho.di.ui.spoon.Spoon$28.widgetDefaultSelected(Spoon.java:5990)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at org.pentaho.di.ui.spoon.Spoon.readAndDispatch(Spoon.java:1297)
	at org.pentaho.di.ui.spoon.Spoon.waitForDispose(Spoon.java:7801)
	at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9130)
	at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:638)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.pentaho.commons.launcher.Launcher.main(Launcher.java:151)
Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
Couldn't execute SQL: SET client_encoding = LATIN1

The server's client_encoding parameter was changed to LATIN1. The JDBC driver requires client_encoding to be UTF8 for correct operation.

	at org.pentaho.di.core.database.Database.execStatement(Database.java:1505)
	at org.pentaho.di.core.database.Database.execStatements(Database.java:1613)
	at org.pentaho.di.core.database.Database.execStatements(Database.java:1529)
	at org.pentaho.di.core.database.Database.normalConnect(Database.java:421)
	... 45 more
Caused by: org.postgresql.util.PSQLException: The server's client_encoding parameter was changed to LATIN1. The JDBC driver requires client_encoding to be UTF8 for correct operation.
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1873)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:372)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:364)
	at org.pentaho.di.core.database.Database.execStatement(Database.java:1479)
	... 48 more

Nombre del host:192.168.0.225
Puerto       :5432
Nombre de la base de datos:guarani3_produccion

Hola Ricardo

Avanzaron algo con esto?

Emilio

Se están realizando algunas pruebas; apenas se resuelva lo replican en este post así queda para todos.

Buenos días!

Estoy teniendo un inconveniente similar al descripto acá.

Entre los comentarios leí:

La base de Informix, en que enconding estaba?
Hay que verificar que el seteo del encoding en la conexion desde el Kettle al Informix y al Postgres se corresponda con cada base.

Y
En el kettle, en la conexión de postgres, hacer doble click, ir a la opción Advanced, debajo de Enter the SQL statements(…):

Reviso lo indicado y no logro encontrar donde configurarle el encoding. Podrían informarme esto?

Gracias
Leandro

Buen día Leandro! Ricardo comentó sobre el tema en el taller, el inconveniente se debía a que se creó la BD con un encoding y luego lo modificaron. Uds cómo crearon la base en Guaraní 3?

Hola Leandro! Cómo estás? bueno, en realidad no tienes que ver nada, solo debes ver que los archivos de migración estén en LATIN1 que en realidad es el ISO859, es lo único que pude ver que me daba error! Proba con eso, y si no da, me dices!

Saludos!

Ah, buenísimo, ahora lo probamos y les comento después.
Por lo pronto, le hice un file a los archivos y efectivamente están en latin1.

Saludos
Leandro