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
*****************************************
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 |