Re: Conversión de LATIN1 a UTF8

From: Julio Cesar Sánchez González <knowhow(at)sistemasyconectividad(dot)com(dot)mx>
To: rosorio(at)servidor(dot)unam(dot)mx
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Conversión de LATIN1 a UTF8
Date: 2007-11-26 16:27:50
Message-ID: 1196094470.7405.4.camel@andromeda
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


El lun, 26-11-2007 a las 03:42 -0600, rosorio(at)servidor(dot)unam(dot)mx escribió:
> Hola a todos, después de mucho rato de no dar con la solución (googlear, buscar
> en la lista, etc.) he decidido recurrir a su ayuda.
>
> Estoy tratando de llevar un cluster generado en LATIN1 hacia uno que sea
> generado en UTF8, todo esto en una distribución Centos con postgres 8.1.9
>
> Para el archivo i18n tengo
>
> LANG="es_MX.UTF-8"
> SUPPORTED="es_MX.UTF-8:es_MX:es:es_ES.UTF-8:es_ES:es"
> SYSFONT="latarcyrheb-sun16"
>
> con locale me arroja
>
> LANG=es_MX.UTF-8
> LC_CTYPE="es_MX.UTF-8"
> LC_NUMERIC="es_MX.UTF-8"
> LC_TIME="es_MX.UTF-8"
>
> Pero al crear el cluster las cosas ya no operan del todo bien ya que comienza a
> desplegar caracteres erroneos.
>
> initdb -E UTF8 --locale=es_MX.UTF-8 -D ./data
> Los archivos de este cluster serán de propiedad del usuario «postgres».
> Este usuario también debe ser quien ejecute el proceso servidor.
> El cluster será inicializado con configuración local es_MX.UTF-8.
>
> Ahora bien, si reviso cómo quedó la instalación obtengo:
>
> template1=# \l
> Listado de base de datos
> Nombre | Dueño | Codificación
> -----------+----------+---------------
> postgres | postgres | UTF8
> template0 | postgres | UTF8
> template1 | postgres | UTF8
>
> Sin embargo con \set veo que ENCODING = 'LATIN1' (ver más adelante)
>
> template1=# \set
> VERSION = 'PostgreSQL 8.1.9 on x86_64-redhat-linux-gnu, compiled by GCC gcc
> (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52)'
> AUTOCOMMIT = 'on'
> VERBOSITY = 'default'
> PROMPT1 = '%/%R%# '
> PROMPT2 = '%/%R%# '
> PROMPT3 = '>> '
> DBNAME = 'template1'
> USER = 'postgres'
> PORT = '5432'
> ENCODING = 'LATIN1'
>
> Por lo que al hacer el vaciado de mi respaldo de LATIN1 ha esta nueva
> instalación tengo que, para ver correctamente los registros, poner en la consola
> de psql \encoding latin1 ya que con UTF8 me despliega de manera erronea los
> caractéres ñ y acentos. (al dump que hice le cambio únicamente la codíficación
> de creación de la base a UTF8, los SET CLIENT ENCODING permanecen en LATIN1)
>
> Alguna observación al proceso?. Agradezco de antemano cualquier observación y
> perdón por la extensión del mensaje
>
> Saludos
>
> Roberto Osorio
>
>
>
> -------------------------------------------------
> www.correo.unam.mx
> UNAMonos Comunicándonos
>
> --
> TIP 4: No hagas 'kill -9' a postmaster

Roberto, si tus datos los tenias anteriormente en Latin1, prueba
convirtiendolos en UTF8 mediante la funcion convert de postgresql:
http://www.postgresql.org/docs/8.2/static/functions-string.html

UTF8 es multibyte, lo que latin1 no.

--
Saludos,

Julio Cesar Sánchez González.

--
Ahora me he convertido en la muerte, destructora de mundos.
Soy la Muerte que se lleva todo, la fuente de las cosas que vendran.

www.sistemasyconectividad.com.mx http://darkavngr.blogspot.com/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Siciliano, Pablo 2007-11-26 16:35:23 Consulta BI 2da
Previous Message pablo 2007-11-26 16:09:57 Re: Ayuda con update