Encoding en Postgres

From: Víctor Zúñiga Maradiegue <vzunigam(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Encoding en Postgres
Date: 2009-12-02 23:44:22
Message-ID: 63b9d8d80912021544i430ef953m2e52084a1f229709@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos

Estoy trabajando en un proyecto que involucra postgres, propel y php.

El entorno en el que estoy trabajando es el siguiente
SO: Windows Vista Business SP2
Postgres: Postgres v8.4
Propel: Propel generator/runtime v1.4
PHP: PHP v5.3

Y actualmente estoy teniendo problemas con el encoding al tratar de realizar
una inserción en la tabla MONEDA,
la cual está compuesta por tres columnas (ID, DESCRIPCION,SIMBOLO).
*La descripción del error es la siguiente:*
*Unable to execute INSERT statement. [wrapped: SQLSTATE[22021]: Character
not in repertoire: 7 ERROR: secuencia de bytes no válida para codificación
«UTF8»: 0x80 HINT: Este error también puede ocurrir si la secuencia de bytes
no coinciden con la codificación esperada por el servidor, lo cual es
controlado por el parámetro «client_encoding».]sbsnube\app\bl\Moneda Object
( [id:sbs\app\bl\Moneda:private] => 3
[descripcion:sbs\app\bl\Moneda:private] => EURO
[simbolo:sbs\app\bl\Moneda:private] => � )*

La base de datos fue creada con la siguiente sentencia:
*CREATE DATABASE sbs*
* WITH OWNER = sbsadmin*
* ENCODING = 'UTF8'*
* LC_COLLATE = 'Spanish_Peru.1252'*
* LC_CTYPE = 'Spanish_Peru.1252'*
* CONNECTION LIMIT = -1;*

Además desde pgslq al ejecutar los siguientes comandos obtengo:
*sbs=#SHOW SERVER_ENCODING;*
*server_encoding*
*---------------*
*UTF8*
*(1 fila)*

*sbs=#SHOW CLIENT_ENCODING;*
*client_encoding*
*---------------*
*UTF8*
*(1 fila)*

El archivo generado por propel que contiene información sobre la conexión
también establece el charset a utf8.
La inserción sólo falla con símbolos de moneda tales como €, ¥, £, ₱, etc.

Un dato adicional es que al ejecutar INSERT INTO MONEDA VALUES(3,'EURO',
'€'); desde la Herramienta de Consultas de pgAdminIII ésta se ejecuta
exitosamente. Sin embargo al ejecutar la misma sentencia desde pgsql se
logra insertar la fila, pero como símbolo de la moneda se registra un '?' en
lugar de '€'.

¿Es utf8 el charset adecuado para representar estos símbolos?...Agradecería
muchisímo si me brindan alguna guía que me permita resolver este problema.

Gracias por su ayuda.

--
MCSD Ing. Víctor Zúñiga Maradiegue
Gerente de Producto
Simbiosys Software S.A.C.
vzuniga(at)simbiosysonline(dot)com
Telf. 044-298017 Nextel 829*8927 - 810*6616 Cel. 01-98298927

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-12-02 23:49:40 Re: Script de creacion de usuario y base de datos
Previous Message Miguel Panuera 2009-12-02 22:50:59 BTree, RTree, Hash