Re: UTF8 compatible con LATIN1 pgsql 8.3

From: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: UTF8 compatible con LATIN1 pgsql 8.3
Date: 2009-04-22 21:27:30
Message-ID: 332542.61545.qm@web52106.mail.re2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Ojo, si no me equivoco, tienes que ver por varios lados
-la base
-el client encoding
-la configuracion de tu maquina server (creo que los LOCATE)
-la configuracion de tu aplicacion... pgadmin por ejemplo

Alvaro, Gunnar y otros muchachos saben un toco de eso...

Gunnar alguna vez me mando lo de abajo (como veras seguro uso otro encoding porque se despelotaron los acentos de su mail...ajajajaaj).
Saludos.

*************************************
Cada elemento donde toques tus datos tiene que estar
consciente de la codificación que usa, y hacérselo saber a los
demás. ¿Qué significa esto?

- Usaste UTF8 para la base de datos. Eso es maravilloso: Puedes
guardar el caracter que se te ocurra sin ningún problema. NO cambies
esto.

- Pero hay un programa que tiene que hablar con la BD, que sólo se
encarga de guardar y entregar los datos. No mencionas qué estás
usando (asumamos que es el psql). Esta aplicación habla con la BD a
través de un canal, y ambos extremos del canal deben usar la misma
codificación. No, esto no significa que tu aplicación requiera ser
también UTF (aunque entre más homogeneo sea tu entorno menos broncas
tendrás). Pero bueno, si el encoding de tu sistema es win866, el
«set client_encoding to 'WIN866'» es lo mejor.

- Por último, tu aplicación tiene que leer el archivo en cuestión, y
este archivo tiene también su propia codificación. Y tu aplicación
tiene que estar consciente de ello - o debes cambiar la codificación
de tu archivo para que concuerde.

Ahora, algo que debes recordar para todas las codificaciones a
excepción de las Unicode (UTF8, UTF16, UTF32, UCS4): No todos los
caracteres son representables en todas las codificaciones. Digo esto
porque me llama la atención la codificación que usas:

http://en.wikipedia.org/wiki/Code_page_866

CP866 is a Cyrillic code page to be used with MS-DOS. It is based
on the "alternative character set" of GOST 19768-87. The code was
widely used during MS-DOS era because it preserves the
pseudographic symbols (unlike Windows-1251) and maintains
alphabetical order of (non-contiguous) Cyrillic letters (unlike KOI8-R).

Ahora, ¿por qué estás viendo un ║ donde quieres un º? Bueno, asómate a
la página donde está la codificación pre-UTF más común en el mundo de
idiomas europeo-occidentales:

http://en.wikipedia.org/wiki/ISO/IEC_8859-1

El caracter 186 en ISO 8859-1 es º, y el mismo caracter en CP866 es
â•‘. Claro, en Unicode son caracteres diferentes (U+00BA y U+2551
respectivamente). Tu base de datos seguramente contiene â•‘, porque
partió del supuesto que la aplicación estaba hablando en CP866.
****************************

Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-04-22 22:15:07 Re: pg_dump con campos bytea
Previous Message Edwin Quijada 2009-04-22 20:06:47 pg_dump con campos bytea