Foros del Web » Programando para Internet » PHP »

Problemas con las ñ al llamar a la base de datos

Estas en el tema de Problemas con las ñ al llamar a la base de datos en el foro de PHP en Foros del Web. Buenas. Me esta ocurriendo que al llamar a la base de datos usando ajax, cada vez que se imprime la letra ñ por pantalla, en ...
  #1 (permalink)  
Antiguo 26/01/2009, 18:38
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 1
Problemas con las ñ al llamar a la base de datos

Buenas.

Me esta ocurriendo que al llamar a la base de datos usando ajax, cada vez que se imprime la letra ñ por pantalla, en lugar de esta aparece un rombo negro con un simbolo de interrogacion en su interior.

Probe colocando una cabecera en el archivo php que genera la respuesta, de manera que la codificacion fuese UTF-8 o ISO-8859-1, pero de ninguna de las dos maneras consegui que me apareciesen las ñ.

Entonces probé a usar la funcion htmlentities() y resultó que funciono correctamente, pero no quiero tener que estar usando esta funcion cada vez que imprima texto por pantalla, porque son muchisimas las veces que esto ocurre, a parte de parecerme poco practico, profesional y atractivo.

Tampoco creo que sea necesario ni practico usar encode_utf8 cada vez que quiera guardar informacion en la bbdd.

Mysql esta codificando el texto en UTF8_general_ci. Realmente no se cual de los valores elegir de entre todos los de la lista. ¿Cual es el habitual? ¿Puede ser por esto?

Y si no fuese por esto, ¿que otra razon puede haber?

Saludos y gracias
  #2 (permalink)  
Antiguo 26/01/2009, 18:52
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas con las ñ al llamar a la base de datos

Pues te recomendaria que cambiaras las 'ñ' por 'n' u otra letra, ya que al ser un caractér especial del español no lo reconoce y te saca este simbolo.
Trata de no usarlo, ya que aunque la BD este codificandolo a UTF8 este hace cosas raras, y no te lo reconoce (a mi me paso lo mismo ccon una BD POSTGRESQL), mejor cambiar estos caracteres para evitar problemas en el futuro.
Saludos!
  #3 (permalink)  
Antiguo 27/01/2009, 00:19
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas con las ñ al llamar a la base de datos

mmmmmmmm pues fijate q en mi caso la unico q me dio resultado fue utilizar el utf8_decode antes de insertar a la base de datos, en tu caso seria antes de mostrar en pantalla.

espero sea de ayuda.

saludos
  #4 (permalink)  
Antiguo 27/01/2009, 06:03
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 1
Respuesta: Problemas con las ñ al llamar a la base de datos

El tema es que he usado bases de datos en varias paginas que he programado, pero es la primera vez que al imprimir una ñ me da problemas.

Es mas, cuando leo de la base de datos directamente no me da problemas, es cuando muestro la informacion usando ajax cuando me da problemas.

Me extraña mucho que no haya una solucion para este problema. Seguro que la hay.

Help, I need somebody !!!!!
  #5 (permalink)  
Antiguo 27/01/2009, 11:17
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 1
Respuesta: Problemas con las ñ al llamar a la base de datos

Ninguna respuesta aparte de las ya dadas?
  #6 (permalink)  
Antiguo 27/01/2009, 12:39
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 1
Respuesta: Problemas con las ñ al llamar a la base de datos

Bueno, he seguido probando cosas, pero no consigo que ninguna me funcione. Sin embargo, me he dado cuenta de que ya no se trata de la informacion que descargo de la base de datos, sino de cualquier informacion que imprima por pantalla, siempre que esta venga de un archivo, ya sea html o php, que llame usando XMLHttpRequest.

¿Es posible que haya que añadir headers a la llamada de ajax, para que el formato de salida sea el correcto?

Sigo buscando respuestas
  #7 (permalink)  
Antiguo 27/01/2009, 17:35
Avatar de jfl_freak  
Fecha de Ingreso: enero-2009
Ubicación: Guatemala
Mensajes: 96
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problemas con las ñ al llamar a la base de datos

Cita:
Iniciado por jemarquesini Ver Mensaje
Bueno, he seguido probando cosas, pero no consigo que ninguna me funcione. Sin embargo, me he dado cuenta de que ya no se trata de la informacion que descargo de la base de datos, sino de cualquier informacion que imprima por pantalla, siempre que esta venga de un archivo, ya sea html o php, que llame usando XMLHttpRequest.

¿Es posible que haya que añadir headers a la llamada de ajax, para que el formato de salida sea el correcto?

Sigo buscando respuestas
Pues bueno amigo, encontre esto navegando, espero sea de ayuda

Saludos
  #8 (permalink)  
Antiguo 27/01/2009, 18:34
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Problemas con las ñ al llamar a la base de datos

mira, aunque tu contenido este en utf8, cuando trabajas con ajax tenes que volver a codificarlo (suena loco pero probalo) y contame que tal te fue

usa utf8_encode($tu_valor)
  #9 (permalink)  
Antiguo 30/01/2009, 17:05
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 1
Respuesta: Problemas con las ñ al llamar a la base de datos

Cita:
Iniciado por jfl_freak Ver Mensaje
Esta muy bien el artículo, me voy a poner manos a la obra, a ver si consigo resolver algo

Ya os contaré
  #10 (permalink)  
Antiguo 01/02/2009, 19:31
 
Fecha de Ingreso: junio-2008
Mensajes: 76
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Problemas con las ñ al llamar a la base de datos

Creo que existe una manera más sencilla para hacer busquedas o ingresar datos con la letra "ñ" y acentos para el lenguaje en español.

Te sugiero que cada tabla donde guardas datos tenga las siguientes opciones con estos valores:
Charset: latin1.
Collation: latin1_spanish_ci

Te recomiendo utilizar los programas:
MySql Query Browser. Para crear y editar tablas de forma local (si tu PC la usas como servidor).
MySql Migration Toolkit. Este te sirve para poder enviar toda tu base de datos o solo algunas tablas a tu servidor WEB si este ultimo es de paga.
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 12:12.