Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group