From: | "rafael bonifaz" <rafael(dot)bonifaz(at)gmail(dot)com> |
---|---|
To: | "Luis Rodrigo Gallardo Cruz" <rodrigo(at)nul-unu(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: latin1 y |
Date: | 2008-02-09 21:32:04 |
Message-ID: | bde92d2b0802091332s2507f6f3s549d011e69dc0b50@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gracias Luis por tu pronta respuestas
[........]
>
>
> > Entonces el equipo de desarrollo optó por mover la base de datos a
> latin1 y
> > casi todo funciona bien menos los campos tipos money. En lugar de
> aparecer
> > el sígno de $ aparecen carcateres extraños como en este ejemplo:
> > €100,00
>
> Eso tiene toda la cara de error de codificación. Ahora bien, según yo,
> los campos money no guardan el símbolo de moneda, sino tan solo la
> cantidad, por lo que sospecho que es más un problema de representación
> que de los datos guardados en sí. ¿Qué locale estás usando?
>
Sinceramente no se como ver el locale que estamos utilizando. En todo caso
estaba revisando la documentación de postgres y vi que el tipo de datos
money esta haciendo "depracated" y se recomienda utilizar un tipo de dato
numérica y la función to_char.
Entonces de esta manera tenemos un problema con los locales ya que queremos
que el separador de miles sea el "." y de decimales sea la ",". Es decir al
revés que lo que hace el postgess por defecto.
>
> > La pregunta concreta sería. Puedo usar el campo money con la
> codificación
> > Latin1 o debo usar UTF8, donde se tendría el problema de migrar todos
> los
> > scripts php a utf8.
>
> Bueno, migrar los scripts en sí no es problema, basta con llamar un
> convertidor :) Pero luego tendrías que convencer a todas tus
> herramientas de edición de no regresarlos y eso, dependiendo de las
> herramientas puede ir desde 'trivial' hasta 'casi imposible'.
>
> Por otro lado, no *necesitas* convertir los scripts. Lo que necesitas
> es que el servidor y el cliente (en este caso PHP) estén de acuerdo en
> la codificación a usar para comunicarse. La forma de hacer esto es que
> el cliente le avise al servidor, usando un
>
> set client_encoding = 'latin1';
>
> al conectar, antes de cualquier otra comunicación.
>
Quieres decir que con esto podría tener la base de datos en UTF8 y los
scripts en cualquier charset si defino el encoding del cliente como utf8. Me
gusta bastante esta solución.
Gracias por la ayuda.
Saludos,
Rafael
From | Date | Subject | |
---|---|---|---|
Next Message | Luis Rodrigo Gallardo Cruz | 2008-02-09 21:59:08 | Re: latin1 y |
Previous Message | Luis Rodrigo Gallardo Cruz | 2008-02-09 18:55:57 | Re: latin1 y |