Re: Encoding griego

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: Kernel <jucabapa(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Encoding griego
Date: 2016-01-08 16:27:10
Message-ID: CA+bJJbw3k839yKi2++FnsBfkx=HkM5RpNrCSotiD+scEYQ1W1Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2016-01-08 15:24 GMT+01:00 Kernel <jucabapa(at)gmail(dot)com>:
> Tengo la necesidad de introducir caracteres griegos en la base de datos.
> y me estoy volviendo un poco loco.
>
> Se trata del etiquetado de productos en idiomas diferentes
>
> comento lo que hago haber donde tengo el problema
>
> con pgadmin,
>
> set client_encoding='ISO-8889-7';
> Insert into prueba values ('ξοσε 14>00')
>
> si hago la select con el mismo encoding bien, pero sino me da error.
>
> Entiendo que todo me lo esta guardando en UTF8

Si la BD esta en UTF-8 ( como parece indicar el trozo que pegaste mas
abajo ) te lo estara guardando asi.

> ¿Como se trabaja con distintos encoding en la misma tabla?, posiblemente
> tenga que escribir en chino tambien

No puedes ( igual puedes, pero no lo necesitas ). Lo que necesitas es
un encoding que te permita guardar caracteres chinos y griegos, por
ejemplo el utf-8 que ya usas.

> ¿a la ahora de recuperar los datos como lo hago?, ¿necesito guardarme el
> encoding con el que se guardo?

No, la base de datos te los convierte. Si por ejemplo

> No se cual es la manera adecuada de trabajar
> Maquina windows con español de españa

Aqui ya no se como, abandone windows en el 2001 y, aunque por dentro
usa unicode, es uno de los sistemas mas complejos en el lado de
cliente.

Te cuento como lo hago yo. Las DB las pongo en utf-8. Luego pongo mi
terminal en el encoding adecuado, y arranco el psql con ese encoding,
y simplemente los mando. Normalmente uso latin-1 ( pal ejpañol ) o
utf-8, y simplemente pongo ese client-encoding y se los mando.
Normlamente para no liarme lo que hago es utilizar utf-8 siempre en la
terminal y en las sesiones interactivas, y solo uso otros encoding en
scripts. Y me funciona bien, p.e. puedo hacer un .sql en latin1 que
inserta datos, ejecutarlo, reconectar en utf-8 y recuperarlos con el
select.

El problema en windows suele venir del encoding de la terminal, el
codepage creo que lo llamaban. Ten en cuenta que si tu le dices a la
conexion que tu client-encoding es utf-8 eso no afecta al terminal, lo
que hace es decirle al postgres que le vas a mandar los datos en ese
encoding, y que el te los mande asi de vuelta, luego si estas en
interactivo tienes que asegurarte de que el programa que usas los
mande asi. psql, p.e., manda lo que le llega del terminal, y manda lo
que le llega directo a la terminal.

Para evitarte problemas lo suyo es usar scripts, que los editores te
suelen dejar salvarlo en el encoding adecuado. Si usas, como acabo de
ver, pgadmin, ahi no te puedo ayudar mucho, nunca uso ese tipo de
programas precisamente por problemas de estos, no se donde ponerles
los encodings. Me imagino que tu problema es que el pgadmin esta
configurado para el ISO-8889-7 ( que no tengo ni idea de que es ) con
lo que tienes que usar ese client encoding. Prueba a configurar el
pgadmin Y el client encoding a utf-8 y te deberias quitar los
problemas.

Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message MARIA ANTONIETA RAMIREZ SOLIS 2016-01-08 17:04:53 Re: CAMBIO DE PASSWORD DEL USUARIO POSTGRES DE INSTALACION
Previous Message Alvaro Herrera 2016-01-08 15:47:57 Re: consulta con pg_query lentísima