Subscribe:

miércoles, 16 de febrero de 2011

CAMBIAR ENCODING DE UTF-8 A LATIN1 EN POSTGRESQL

El cambio es muy simple, primero ingresamos al terminal toot linux y ejecutamos

su – postgres
Ya estamos como usuario postgres
Entramos al Postgresql ejecutando
psql template1 postgres

Ahora veamos cual es la codificación actual de las base de datos que tenemos un nuestro servidor digitando lo siguiente:
\l
Debe salir algo similar a lo siguiente:
template1=# \l
Listado de base de datos
Nombre   |  Dueño   | Codificación
———–+———-+————–
PRUEBA  | postgres | UTF8
postgres    | postgres | UTF8
template0 | postgres | UTF8
template1  | postgres | UTF8
(4 filas)
Ahora vamos a cambiar el encoder a la Base de Datos PRUEBA, para lo cual vamos a digitar lo siguiente:
update pg_database set encoding=8 where datname='PRUEBA';
Ahora volvemos a listar las Base de Datos digitando: \l   y debe aparecer algo similar a:
Listado de base de datos
Nombre   |  Dueño   | Codificación
———–+———-+————–
PRUEBA  | postgres | LATIN1
postgres    | postgres | UTF8
template0 | postgres | UTF8
template1  | postgres | UTF8
(4 filas)
Con eso  ya tenemos la Base de Datos en LATIN1, ahora, ustedes se preguntarán porque 8 en encoding? les pongo la tabla con el No. de encoding. 
Para que coloquen el valor que les convengan ejemplo si quieren pasar a LATIN9 sería
update pg_database set encoding=16 where datname='PRUEBA';

7 comentarios:

dingo dijo...

Trate de cambiar el encoding utf8 a latin1 pero me sale el siguiente error: la codificación LATIN1 no coincide con la configuración regional Spanish_
DETAIL: La configuración regional LC_CTYPE requiere la codificación WIN1252
Que se debe hacer en este caso?

Unknown dijo...

configurar tu postgres al formato que indicas
update pg_database set encoding=8 where datname='PRUEBA';

juan dijo...

mira si te ayuda esta pagina
http://www.postgresql.org.es/node/341
en una seccion q dice
Solucion codificacion LATIN1 en postgres 8.4 "willdiman Mira Ing
a mi me sirve a unq no este en postgres 8.4 sino en 9.1

German Ponce dijo...

Muchas Gracias me sirvió bastante.

Unknown dijo...

necesito el numero para WIN1252, de donde podría obtenerlo?

blegz dijo...

a mi si me cambia de una a otra, sin embargo la informacion de los campos character varying se elimina

Unknown dijo...

saludos coloco la sintaxis "update pg_database set encoding=16 where datname='PRUEBA';" pero me dice que no encuentra el campo datname nose si tenga que cambiar "pg_database" en realidad nose de donde sale este nombre si es el contenedor de todas las base de datos en mi postgres se llama Databases sera que tengo que cambierlo por este.

Publicar un comentario