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

Re: Conversion UTF8 - WIN1252 en campos binarios ?

From: alvherre <alvherre(at)commandprompt(dot)com>
To: Walter Negro <wnegro(at)vstour(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Conversion UTF8 - WIN1252 en campos binarios ?
Date: 2010-05-28 14:59:41
Message-ID: 1275058563-sup-6582@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Excerpts from Walter Negro's message of vie may 28 08:00:09 -0400 2010:
> Álvaro,
> Hice nuevas pruebas y decidí enviar el dato bytea configurado como binario.
> Según la documentación, el parámetro paramLengths sólo es tomado en 
> cuenta si el dato es enviado con formato binario.
> Algunas veces la documentación puede no ser exactamente lo que ocurre 
> internamente por muchas razones, así que me puse a mirar el código de la 
> libpq y encontré que si el parámetro no es pasado como binario, la 
> librería calcula el largo del string usando la función strlen(). Por lo 
> tanto, la única forma de pasar correctamente un dato binario a un campo 
> bytea, que pueda contener caracteres nulos, es pasarlo justamente como 
> binario.

OK, eso es lo que sospechaba, gracias por confirmarlo.

> Así que la conclusión que saco es que los datos bytea hay que pasarlos 
> configurados binario porque si no, el servidor puede hacer conversiones, 
> además de ser la única forma de pasar datos binarios que contengan 
> caracteres nulos.

Supongo que la otra alternativa es escapar estos datos, usando \000
donde haya caracteres nulos.


¿Has probado usar la biblioteca libpqtypes?
http://libpqtypes.esilo.com/

-- 
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

pgsql-es-ayuda by date

Next:From: Jaime CasanovaDate: 2010-05-28 15:03:17
Subject: Re: COPY FROM
Previous:From: Julio Cesar Rodriguez DominguezDate: 2010-05-28 14:42:35
Subject: Re: Ejecutar select dinamico

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