Re: Lectura corrupta de datos

From: "Efren Alejandro Barroso" <efrenbarroso(at)hotmail(dot)com>
To: alvherre(at)alvh(dot)no-ip(dot)org
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Lectura corrupta de datos
Date: 2005-08-12 23:58:39
Message-ID: BAY107-F128E6180CE18DE0FB656E5C5BC0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias por la ayuda Alvaro, ya quedo.

Nada mas como comentario al mandar la siguiente instruccion desde mi
aplicación al servidor

SET client_encoding TO 'latin1' ;

pasa el problema que tenía, si dejo que se tome la codificación por defecto
de mi base de datos funciona muy bien.

Saludos

>From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
>To: Efren Alejandro Barroso <efrenbarroso(at)hotmail(dot)com>
>CC: pgsql-es-ayuda(at)postgresql(dot)org
>Subject: Re: [pgsql-es-ayuda] Lectura corrupta de datos
>Date: Thu, 11 Aug 2005 22:32:02 -0400
>
>On Fri, Aug 12, 2005 at 12:28:31AM +0000, Efren Alejandro Barroso wrote:
> > Buenas tardes,
> >
> > Estoy empezando con postgreSQL y les escribo para consultarles lo
> > siguiente :
>
> > [problema con codificacion]
>
>Hola,
>
>El problema es que la codificacion SQL_ASCII en realidad no asegura nada
>sobre la codificacion de los datos -- los bytes que entran, salen.
>
>Esto puede parecer correcto, pero no es asi. El problema aparece cuando
>tienes una aplicacion que inserta datos usando, digamos, Latin-1, y otra
>aplicacion que los lee usando, por ejemplo, UTF-8.
>
>Cuando eso sucede, los bytes que escribes se van a interpretar de manera
>distinta al leerlos.
>
>Para solucionar este problema tienes que hacer dos cosas:
>
>1. definir una codificacion en el servidor (server_encoding) al momento
>de hacer initdb. Observa que no puedes cambiar la codificacion en un
>instante posterior; si bien se supone que se puede escoger al momento de
>CREATE DATABASE, en la practica estas limitado a la codificacion del
>locale que escoges al hacer initdb. Por lo tanto en realidad escoges la
>codificacion en initdb. Ahora bien, esta codificacion puede ser
>cualquiera salvo SQL_ASCII, pero como te digo depende del locale. En la
>practica puede ser Latin-1, Latin-9 o UTF-8.
>
>2. Definir client_encoding correctamente en cada aplicacion.
>
>
>Por lo tanto lo que tienes que hacer en realidad es un dump de tus
>datos, luego asegurarte que estan en alguna codificacion coherente (por
>ej. que no hay mitad de datos en Latin-1 y otra mitad en UTF-8), luego
>crear una BD con una codificacion como dije en el paso 1, luego
>restaurar los datos (definiendo client_encoding al momento de hacerlo,
>para que se haga reconversion de datos de ser necesario), y finalmente
>usando cualquier aplicacion los datos saldran en la forma correcta.
>
>
>Espero haberme explicado. Este tema en realidad es muy simple, pero es
>como las matematicas: si no has tenido el "ding" no lo comprendes.
>
>--
>Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
>Y dijo Dios: "Que sea Satanás, para que la gente no me culpe de todo a mí."
>"Y que hayan abogados, para que la gente no culpe de todo a Satanás"

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-08-13 00:28:07 Re: Lectura corrupta de datos
Previous Message Pascual De Ruvo 2005-08-12 23:47:00 Re: A toda la "Comunidad en Español de PostgreSQL"