Re: mensajes de excepccion en esañol

From: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>
To: blackbeer <dblackbeer(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: mensajes de excepccion en esañol
Date: 2005-09-02 17:47:38
Message-ID: m3ek87pdj9.fsf@conexa.fciencias.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> writes:

> En resumen, si uno configura todo correctamente, las cosas funcionan
> como se espera. Lamentablemente es bastante facil equivocarse en la
> configuracion :-(

Bueeeno, creo que nunca lo había pensado, simplemente me había
acostumbrado a vivir con el error pero ahora todo es claro. El
problema viene de que tengo mi base de datos en latin1 (sobre todo
para el manejo de collations y algunas coasas de regex) y mi ambiente
en utf8. Cuando abro psql todo funciona bien, ie se da cuenta que
estoy en utf8 y hace el recoding como debería, por ejemplo, el mensje
de bienvenida se ve bien:

Bienvenido a psql 8.0.3, el terminal interactivo de PostgreSQL.

Digite: \copyright para ver los términos de distribución
\h para obtener ayuda sobre comandos SQL
\? para obtener ayuda sobre comandos internos
\g o punto y coma (;) para ejecutar consulta
\q para salir

Nótese la e acentuada en ``términos''. Ahora, dado que mi base de
datos esta en latin1 los datos no se ven bien, por ejemplo, para
completar una tabla:

ciencias=# \d regacd.calificaci<TAB>
regacd.calificaci n regacd.calificaci n_sid regacd.calificaci n_uso_pkey
regacd.calificaci n_pkey regacd.calificaci n_uso

Nótese que existe un espacio en blanco (que en realidad es \uffff)
donde debería haber una o acentuada y similarmente ocurre con los
datos. Para arreglar esto lo que hice fue añadir a mi .psqlrc algo
como:

SET client_encoding TO 'utf8'

Con esto logro que mis datos y nombres de tablas se vean bien pero
PostgreSQL se atonta y cree que tiene que hacer recodificación otra
vez y por lo tanto los mensajes de error extraños. Nótese que esto
mismo puede pasar con Java si el ambiente es UTF-8 ya que el driver
ejecuta de forma explícita un SET client_encoding TO 'utf8'.

Ahora, la parte de psql se resolvería si se le enseña a hacer de forma
explícita un SET client_encoding TO 'utf8' si se da cuenta que el
ambiente es UTF-8 y la base de datos no, esto es nada más que SMOP.

Saludos,
Manuel.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-09-02 20:01:12 Re: mensajes de excepccion en esañol
Previous Message Manuel Sugawara 2005-09-02 17:16:09 Re: mensajes de excepccion en esañol