From: | Francisco Rodríguez <registros(at)meetworks(dot)com> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RV: [pgsql-es-ayuda] RV: [pgsql-es-ayuda] MINI-Guía: Incluir caracteres acentuados, eñes y demás (y II) |
Date: | 2005-11-05 14:30:54 |
Message-ID: | auto-000000426404@meetworks.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Un detalle a añadir: Si queréis evitar tener que indicar explícitamente el
client_encoding en cada conexión con el servidor, puede establecerse de
forma universal para cualquier aplicación en el propio fichero
postgresql.conf (/var/lib/pgsql/data/postgresql.conf):
client_encoding = 'LATIN9'
Con resto, cualquier programa, incluso aunque no permita modificar dicho
parámetro (por ejemplo el EMS PostgreSQL Import), funcionará como es debido,
mostrando eñes y acentos.
Un saludo.
Francisco Rodríguez Cala
Meetworks
Servicios informáticos administrados para empresas
http://www.meetworks.com
-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Francisco
Rodríguez
Enviado el: sábado, 05 de noviembre de 2005 13:44
Para: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: [pgsql-es-ayuda] RV: [pgsql-es-ayuda] MINI-Guía: Incluir caracteres
acentuados, eñes y demás
Espero os resulte útil.
Saludos.
Francisco Rodríguez Cala
Meetworks
Servicios informáticos administrados para empresas http://www.meetworks.com
-----Mensaje original-----
De: Francisco Rodríguez [mailto:registros(at)meetworks(dot)com] Enviado el: sábado,
05 de noviembre de 2005 13:35
Para: 'Martín Marqués'
Asunto: RE: [pgsql-es-ayuda] uso de SOUNDEX para incluir caracteres
acentuados en SQL_ASCII
Encantado de aportar mi granito de arena. Aquí va una guía paso a paso
resumida de cómo lo he hecho (extracto de mi HOWTO particular en mi base de
conocimientos ;-) ):
Tras diversas pruebas con malos resultados, se ha logrado una configuración
que permite la utilización correcta de eñes, acentos y otros caracteres para
almacenar cadenas en español.
--------------------------------------------------
Cosas a modificar/añadir:
--------------------------------------------------
Fichero /var/lib/pgsql/postgresql.conf:
--------------------------------------------------
lc_messages = 'es_ES' # locale for system error message strings
lc_monetary = 'es_ES' # locale for monetary formatting
lc_numeric = 'es_ES' # locale for number formatting
lc_time = 'es_ES' # locale for time formatting
Fichero /etc/init.d/postgresql (o el encargado de llamar a initdb):
--------------------------------------------------
initdb -o -E LATIN10
- la opción -o permite el tratamiento de fechas en formato europeo.
- la opción -E fuerza un character set en concreto para el servidor. Nota:
La diferencia de funcionamiento añadiendo o no esta opción no ha sido
comprobada, pero mejor añadirla puesto que con ella el funcionamiento de
Facturalux y EMS PostgreSQL Manager ha sido correcto.
Creación de la base de datos:
--------------------------------------------------
create database <nombre_bd> with encoding 'UTF-8';
Configuración de qsql, EMS PostgreSQL Manager y cualquier aplicación cliente
--------------------------------------------------
Es necesario seleccionar el client_encoding a LATIN9. En EMS Manager
simplemente se selecciona el mismo en los datos de conexión.
Mediante qsql, el procedimiento a seguir es:
- Comprobar client_encoding actual:
show client_encoding;
- Cambiar client_encoding:
set client_encoding to 'LATIN9';
Nota: Esta sentencia SET debe ser lanzada mediante el API de conexión que
cada cual use en sus desarrollos para así garantizar las conversiones
adecuadas.
Offtopic: Configuración de FacturaLUX.
--------------------------------------------------
En el apartado Configuración\Fuente del cargador principal de la aplicación,
hay que especificar en el campo ALFABETO la opción LATIN. Con ello todo
funciona como se espera aquí por nuestra tierra.
Dato: la configuración de LC_MESSAGES a es_ES por si sola muestra mensajes
en español pero con montones de caracteres raros. Una vez configurado dicho
parámetro y los descritos previamente, los mensajes del servidor se muestran
correctamente en español.
Bueno, espero que os resulte de utilidad y me encantaría saber si han
resuelto vuestros problemas o si existen mejores maneras de hacerlo. Si
alguien piensa que esta mini-guía puede resultar útil a más gente, que la
publique donde quiera para el conocimiento de todos.
Un saludo.
Francisco Rodríguez Cala
Meetworks
Servicios informáticos administrados para empresas http://www.meetworks.com
-----Mensaje original-----
De: Martín Marqués [mailto:martin(at)bugs(dot)unl(dot)edu(dot)ar] Enviado el: sábado, 05 de
noviembre de 2005 13:15
Para: Francisco Rodríguez
Asunto: Re: [pgsql-es-ayuda] uso de SOUNDEX para incluir caracteres
acentuados en SQL_ASCII
Sería bueno que mandes esto a la lista.
El Sáb 05 Nov 2005 09:00, escribió:
> Hola a todos y encantado de entrar a formar parte de la lista.
>
> Aún me considero principiante en PostgreSQL puesto que he comenzado a
> trabajar con ella hace poco, pero mi humilde experiencia en este corto
> tiempo es que las eñes y acentos son un COÑAZO. He solucionado los
> problemas finalmente pero esto ha pasado por crear la BD con el
> encoding adecuado.
>
> Como sabrás, pg tiene 2 "codificaciones": una en el servidor y otra en
> el cliente. Según qué codificación tengas en la BD, así podrás
> seleccionar una y otra codificación en el cliente.
>
> Siempre que elijas un client-encoding compatible, las conversiones son
> automáticas. Yo mismo he tenido los problemas que describes pero con
> UNICODE.
>
> He solucionado el problema creando la BD como UTF-8 y usando LATIN9
> para la codificación en el cliente. Con esto, las eñes, acentos y
> demás pescas se almacenan correctamente, se visualizan, y son usadas
> en las SELECT como la que tratas de hacer.
>
> Como regalo a esto, los mensajes del servidor ahora se muestran
> perfectamente, con acentos y comillas (antes salían con caracteres
> raros aunque pusiera LC_MESSAGES a es_ES.
>
> Bueno a lo mejor muchos pensáis que estoy diciendo tonterías porque la
> solución es mucho más simple, pero la inexperiencia y la necesidad te
> hace buscar soluciones de "urgencia".
>
> Si por el contrario a alguien le interesa esto, estaré encantado de
> proporcionar toda la info de cómo lo he hecho.
>
> Un saludo.
>
> Francisco Rodríguez Cala
> Meetworks
> Servicios informáticos administrados para empresas
> http://www.meetworks.com
>
> -----Mensaje original-----
> De: pgsql-es-ayuda-owner(at)postgresql(dot)org
> [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Martín
> Marqués Enviado el: viernes, 04 de noviembre de 2005 21:48
> Para: pgsql-es-ayuda(at)postgresql(dot)org
> CC: Cesar A.
> Asunto: Re: [pgsql-es-ayuda] uso de SOUNDEX para incluir caracteres
> acentuados en SQL_ASCII
>
> El Vie 04 Nov 2005 16:17, Cesar A. escribió:
> > Ya he revisado los archivos de la lista, y entendido que no se puede
> > por la codificación, se me ocurrió probar la función SOUNDEX...
>
> Jamás vi dicha funcion y no esta por defecto en mi servidor.
> Instalaste algun contrib en la base?
>
> > Más sin embargo, como no quiero adaptar el código arriba, decidí
> > hacerlo sobre el servidor de pruebas que hay en la empresa, pero
> > éste, tiene la BD creada en LATIN1, y ya no va la consulta...
>
> No seria mas facil poner todas las bases en LATIN1, eso si es que
> estan usando caracteres como las vocales acentuadas o la ñ?
>
> --
> select 'mmarques' || '@' || 'unl.edu.ar' AS email;
> ---------------------------------------------------------
> Martín Marqués | Programador, DBA
> Centro de Telemática | Administrador
> Universidad Nacional
> del Litoral
> ---------------------------------------------------------
>
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
--
09:14:24 up 32 days, 10 min, 4 users, load average: 0.75, 1.05, 0.84
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------
---------------------------(fin del mensaje)---------------------------
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envíe "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
From | Date | Subject | |
---|---|---|---|
Next Message | Jose Yupan C | 2005-11-05 14:58:53 | REndimiento de Postgres |
Previous Message | Pablo Braulio | 2005-11-05 12:44:53 | Re: Quiero insertar la fecha actual en una columna. |