Encoding LATIN1 errores ortografía

Al pasar de postgres 8.3 a 8.4, creamos las bases en blanco y con Update pasamos el encoding a LANTIN1, quedando así
CREATE DATABASE toba_2_1
WITH OWNER = postgres
ENCODING = ‘LATIN1’
TABLESPACE = pg_default
LC_COLLATE = ‘es_CO.UTF-8’
LC_CTYPE = ‘es_CO.UTF-8’
CONNECTION LIMIT = -1;

Pero las aplicaciones muestran errores ortográficos.

Gracias

Jhon,

eso es por lo siguiente, el locale que esta usando la bd no es compatible con el encoding que le forzaron a la bd, de hecho esa sentencia de creacion no deberia funcionar.

Para crear una BD manualmente con encoding LATIN1 en un cluster UTF-8, no te va a quedar otra que utilizar ‘C’ como type y collation.

Te recomendaria que crees la bd como viene directamente con un


CREATE DATABASE toba_2_1;

Y luego fijes en el archivo bases.ini el encoding en LATIN1 para la bd correspondiente, con eso la conversion la deberia realizar automaticamente postgres, lo que tenes que tener en cuenta es que cada vez que ejecutes un script contra la bd manualmente, no te podes olvidar de setear el encoding en el cliente que uses, de lo contrario los caracteres te van a quedar mal.

Otra forma de crear la bd seria utilizando los comandos:


toba base registrar

toba base crear

Con esos comandos te deberia quedar correctamente configurada la bd, siempre y cuando el encoding del cluster permita la conversion entre cliente y servidor.

Saludos

Richard, gracias por la pronta respuesta

Como dices aplicar el encoding al ejecutar un script como lo hago ?

normalente se ejecuta

UPDATE XXXX
INSERT XXXX

toba::db()->consultar()

como le hago para que tome el LATIN1 ?

Gracias

Jhon,

si los scripts los ejecutas por medio de toba, no deberias tener inconvenientes en tanto y en cuanto la configuracion de la base este correcta.

Yo me estaba refiriendo al uso de otros clientes, como ser psql, pgAdmin, etc… en esos casos tambien debes setear el encoding en el cliente para que no te queden caracteres raros.

Saludos