Alvaro Herrera escribió:

comarin_telefonica escribió:

s001=> set client_encoding='WIN1251';
SET
s001=> CREATE temp table tmp_movcostp (
   cmp_condoid integer
);

Cuéntame una cosa, ¿por qué estás usando WIN1251 si ese juego de
caracteres es para el lenguaje cirílico?  Creo que deberías estar usando
Win1252 para representar alfabetos de Europa occidental (que era donde
estaba España la última vez que miré el mapa)

http://en.wikipedia.org/wiki/CP1251


Pues no te sabría decir, viene de antiguo, las bases de datos en su día se crearon así:

createdb -e -U usu -E WIN ...

Donde WIN parece ser que es un alias de WIN1251.

Las aplicaciones siempre han ido bien con todos los carácteres que utilizamos por aquí (acentos abiertos, cerrados, c cedilla, ...) y no nos habíamos preocupado del tema, hasta la versión 8.3 de Postgres en que ya no te permite cargar distintas codificaciones en un mismo clúster. Ahí es donde nos planteamos hacer las cosas mejor, utilizar UTF8 en el servidor y para mantener la compatibilidad con los datos y aplicaciones hacer el set client_encoding='WIN1251' en la conexión.

Esta es la historia.

De todas formas el misterioso problema del CREATE se soluciona con set client_encoding='WIN1252'.

Pero entonces tengo problemas más graves por otro lado:

s000=> show server_encoding;
server_encoding
-----------------
UTF8
(1 fila)

s000=> show client_encoding;
client_encoding
-----------------
WIN1252
(1 fila)

s000=> select pr_codi,pr_val,pr_catra,pr_catrm,pr_catrc,pr_catrb,pr_datra,pr_datrm,pr_datrc,pr_datrb from dgprog where pr_npant = 'msg1 01' and (pr_list = 'B' or pr_list = 'S') order by pr_codi; ERROR: carácter 0xd183 de codificación «UTF8» no tiene equivalente en «WIN1252»
s000=>

Saludos.

Conxita Marín
Desarrollos Informáticos Modulares de Software, S.L.
www.dims.com








--
TIP 4: No hagas 'kill -9' a postmaster

Responder a