Acerca de UTF8 en una base de datos

From: Carolina Román Salgado <rossyr(at)abulafia(dot)ciencias(dot)uchile(dot)cl>
To: Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Acerca de UTF8 en una base de datos
Date: 2009-01-09 15:22:08
Message-ID: 1231514528.4982.73.camel@swpx22.sw.ehu.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola

Tengo una preguntonta acerca del encoding de una base de datos en
Postgres.

Estoy usando Drupal (un CMS) sobre Postgres y la db que creó el
instalador de Drupal está en UTF8. De acuerdo a la documentación de
Drupal todo es UTF8, con lo que no tengo problemas con mis datos, que
incluyen nombres acentuados en español y francés. Todos los datos se
despliegan correctamente en la web, guardados con acentos directamente
en los formularios sin necesidad de cambiarlos por su equivalente html
(cosa que no puedo pedir a mis usuarios: son lo más flojos que he
visto). Según Firefox la página está en UTF8 y el servidor está
configurado para ser UTF8 por defecto.

Ahora estoy intentando mover _solo los datos_ desde dos tablas en esa
base de datos a una nueva base de datos con una versión superior de
Drupal. Saqué los datos con pg_dump --encoding=UTF8 y se los di a la
nueva db que tiene el mismo encoding. Por desgracia tuve que
transformarlos un poco con Gnumeric, aunque me preocupé de decirle que
eran UTF8 al exportarlos. Pero encontré, al verlos en la nueva web, que
todos los acentos y eñes están destruidos.

Así que fui a mirar los datos con psql en la base de datos original. Y
vi que incluso teniendo como encoding UTF8, con psql no puedo ver los
caracteres correctamente. Pensé que podría ser un problema de la fuente
que utiliza el terminal donde estoy usando psql, pero veo correos con
acentos y eñes sin dificultades usando alpine.

Hice otra prueba y acabo de ver que no puedo insertar a mano un
registro

INSERT into drupal_node (nid, title) VALUES (200009, "Título");

porque me dice que ERROR: invalid byte sequence for encoding "UTF8":
0xed7475. (En realidad esto es una prueba, no importa nada y sé cómo
resolverlo).

Así las cosas, creo que no entiendo en realidad cómo funciona todo eso,
así que mi pregunta es: ¿si la db está en UTF8, la aplicación web que
guardó también, lo mismo mi cliente psql, no debería yo ser capaz de ver
"El País" y no "El País" en psql?

¿Alguno de ustedes sería tan amable de explicarme un poco?

¡Gracias!

Carolina

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-01-09 15:56:29 Re: Acerca de UTF8 en una base de datos
Previous Message Julio Cesar Rodriguez Dominguez 2009-01-09 14:52:18 Re: Manual de PL/pgSQL