Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/08/2006, 15:49
foo
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
Antigüedad: 18 años, 2 meses
Puntos: 0
Cita:
Iniciado por KarenFerreira Ver Mensaje
Hola, pues bien, resulta que tengo una función que recibe una cadena y debería transformarla en algo de este tipo mas o menos:

Si recibo "pensión"
debería quedar: "p[eéèêëEÉÈÊË]ns"[iíïîìIÍÏÎÌ][oóôöòOÓÔÖÒ]n",
que intentas hacer con eso? si lo que quieres hacer es comparar textos sin importar las tildes, puedes usar la funcion to_ascii para eso.
Código:
SELECT * FROM tabla WHERE to_ascii(campo) = to_ascii('pensión');
Cita:
Iniciado por KarenFerreira Ver Mensaje
esto con el fin de enviarla a una consulta postgre sql y hacer una comparacion con "similar to", el caso es que no esta haciendo lo que debería porque cuando le digo pensión y muestro la variable para ver si la recibió bien, efectivamente me muestra

"pensión"

pero cuando empiezo a separar la cadena caracter por caracter para reemplazarlos por las cadenas correspondientes a las vocales, entonces me sale

"p e n s i ? ? n"

y cuando vuelve a unir mi cadena y le digo que la muestre en pantalla para saber como se ve, entonces me muestra

"p[e����E����]ns[i����I����]ón"

lo cual es extraño porque aparte de no modificarme la o, la toma como dos caracteres por separado y los caracteres que vienen tildados de diferentes formas dentro de mis cadenas de reemplazo, se cambian por interrogantes. La función que estoy utilizando es la siguiente:
no hace lo que deberia porque seguramente estas haciendo algo mal, debes tener en cuenta que el encoding del cliente y servidor deben ser el mismo para evitar este tipo de cosas.

te sugiero que de vez en cuando leas la documentacion...