Re: Problema de configuracion Local

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
Cc: Juan Pablo Yañez <jyanez(at)sigma(dot)gov(dot)bo>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema de configuracion Local
Date: 2005-04-01 14:55:54
Message-ID: 424D60FA.40803@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

Alvaro Herrera escribió:

>>On Thu, Mar 31, 2005 at 10:27:02AM -0400, Juan Pablo Yañez wrote:

>>El cluster será inicializado con configuración local Spanish_Bolivia.1252
>>...
>>
>>Pero el orden de caracteres es distinto al que tengo en oracle:
>
>
> Hum! Lo unico que te puedo decir es que aparentemente Windows no tiene
> una configuracion local adecuada. Postgres usa las funciones del
> sistema operativo para hacer el ordenamiento (cosa que dudo que Oracle
> haga, y por eso funciona); aca en Linux funciona correctamente:
>

Aprovecho para comentar que haciendo pruebas esta semana me he
encontrado un problema similar, del que describo todos los pasos:

BD 8.0.1 sobre linux

Desde un cliente PGAdminIII sobre windows conecto y ejecuto:

show client_encoding;
"UNICODE"

show server_encoding;
"UNICODE"

show lc_ctype;
"es_ES"

CREATE TABLE prueba
(
texto varchar
)
WITHOUT OIDS;

insert into prueba (texto) values('ñ');
insert into prueba (texto) values('Ñ');
insert into prueba (texto) values('n');
insert into prueba (texto) values('a');
insert into prueba (texto) values('A');
insert into prueba (texto) values('á');
insert into prueba (texto) values('Á');
insert into prueba (texto) values('b');
insert into prueba (texto) values('B');
insert into prueba (texto) values('o');
insert into prueba (texto) values('ó');

select texto from prueba order by texto;

"a"
"A"
"á"
"ñ"
"Á"
"Ñ"
"ó"
"b"
"B"
"n"
"o"

Como veis el orden no tiene mucha lógica.

A continuacion hago telnet al servidor y ejecuto el mismo select desde psql:

pruebas=# select texto from prueba order by texto;
texto
-------
a
A
á
ñ
Ã
Ã
ó
b
B
n
o
(11 rows)

Ahora si sale ordenado, pero ¡los caracteres son distintos!

Continuado con las pruebas (y pensado que alguien me esta tomando el
pelo) instalo EMS PostgreSQLManager Lite, conecto y ejecuto:

show client_encoding;
UNICODE

select texto from prueba order by texto;
a
A
á
ñ
Ã
Ã
ó
b
B
n
o

¡El resultado es el mismo que con psql en linux!

Comprobando la configuracion de EMS veo que la configucación de la
conexion, en el apartado de 'Condficacion de cliente' esta en [NONE].
Lo cambio a LATIN1 y repito la operación:

show client_encoding;
LATIN1

select texto from prueba order by texto;
a
A
á
ñ
Á
Ñ
ó
b
B
n
o

Muestra lo mismo que daba PGAdminIII.

Conclusión:

PGAdminIII se esta liando con las codificaciones y dice que esta
utilizando UNICODE pero realmente esta utilizando LATIN1, y por lo tanto
no genera los caracteres correctos. Tampoco encuentro opcion en
PGAdminIII para establecer cual es la codificacion de cliente.

Por desgracia, al intentar repetir la operación desde el principio,
tanto en psql como en EMS las sentencias insert me dan los siguientes
errores:

pruebas=# insert into prueba (texto) values('ñ');
ERROR: Unicode characters greater than or equal to 0x10000 are not
supported

pruebas=# insert into prueba (texto) values('á');
ERROR: invalid byte sequence for encoding "UNICODE": 0xe1

Pero esto creo que es otro problema distinto :(

Saludos y disculpad por haberme extendido tanto.

--
*****************************************
Oswaldo Hernández
oswaldo(at)soft-com(dot)es
*****************************************

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-04-01 14:57:50 Re: Ingeniería inversa
Previous Message Edwin Quijada 2005-04-01 14:35:35 RE: [pgsql-es-ayuda] Ingeniería inversa