Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Problema con las tildes y las eñes en Postgres

Estas en el tema de Problema con las tildes y las eñes en Postgres en el foro de PostgreSQL en Foros del Web. Hola a todos, aca les traigo un tema que ya deben haber enfrentado en algun momento. Resulta que mi base de datos Postgres esta codificada ...
  #1 (permalink)  
Antiguo 16/03/2011, 11:06
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 14 años, 5 meses
Puntos: 1
Problema con las tildes y las eñes en Postgres

Hola a todos, aca les traigo un tema que ya deben haber enfrentado en algun momento. Resulta que mi base de datos Postgres esta codificada con Latin1 con el objetivo de poder asimilar caracteres con tildes o eñes (Segun he leido) sin embargo sucede lo contrario cuando realizo una transaccion cuyo esquema es el siguiente:
1. Desde mi pagina php ejecuto el formulario.
2. Los datos pasan mediante AJAX por una pagina javascript (validaciones)
3. Envia los datos a una pagina php que contiene la clase que realiza la transaccion e inserta los datos en la BD.

Ese esquema funiona perfectamente y tiene sus ventajas, pero en dicho proceso los datos que finalmente se insertan en la BD Postgres (codificada con LATIN1) aparecen con caracteres como este ejemplo (la palabra título): tÃ*tulo.

Espero me puedan dar sus recomendaciones al respecto y les agradesco de antemano.
Saludos colegas.
  #2 (permalink)  
Antiguo 16/03/2011, 12:02
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Problema con las tildes y las eñes en Postgres

mira esta funcion
http://php.net/manual/es/function.pg...t-encoding.php

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 17/03/2011, 08:00
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema con las tildes y las eñes en Postgres

Saludos Huesos, muy interesante la funcion que me recomendaste pero te cuento que ya pude resolver mi problema, lo que hice fue lo siguiente:

1. Modifiqué el archivo de configuracion postgresql.conf habilitandole la variable client_encoding = latin1 (ya que la BD tambien esta codificda con Latin1)
2. Agregue la codificación utf 8 en mis capas de interfase (formulario.php y formulario.js)
3. En la tercer capa de mi arquitectura (clase_formulario), donde accedo a la BD de forma orientda a objetos utilicé la siguiente funcion para convertir a "Latin1" los datos que vienen del formulario:
// Función que convierte un string a ISO-8859-1 (LATIN1)
function latin1($txt) {
$encoding = mb_detect_encoding($txt, 'ASCII,UTF-8,ISO-8859-1');
if ($encoding == "UTF-8") {
$txt = utf8_decode($txt);
}
return $txt;
}

Con estos tres pasos resolví mi problema aunque ahora que he estudiado mas el tema considero que pueden existir varias formas de lograrlo. De todas formas te agradesco tu interés y espero que tanto tu como yo podamos serles útil a quien pueda verse en una situacion similar.

Saludos,

Tony
  #4 (permalink)  
Antiguo 18/03/2011, 06:53
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 3 meses
Puntos: 7
Respuesta: Problema con las tildes y las eñes en Postgres

Saludos

Lo correcto es que tengas en tu sistema (html+php+lo que sea) y en tu BD el mismo tipo de codificación. Latin1 _no_ es el único que soporta caracteres especiales, y a decir verdad, hoy por hoy es común, popular y/o un estandar defacto utilizar UTF8
__________________
Gracias de todas todas
-----
Linux!

Etiquetas: eñes, postgres, tildes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:01.