Foros del Web » Creando para Internet » Diseño web »

Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Estas en el tema de Acentos y Ñ, no es PHP, no es APACHE, Mysql? en el foro de Diseño web en Foros del Web. Hola. Tengo instalado PHP5, APACHE2 y MYSQL5. El problema es que los textos que contienen "acentos" se reemplazan por signos raros. Entonces empeze a analizar ...
  #1 (permalink)  
Antiguo 06/02/2008, 12:48
 
Fecha de Ingreso: mayo-2007
Mensajes: 29
Antigüedad: 10 años, 6 meses
Puntos: 0
Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Hola.

Tengo instalado PHP5, APACHE2 y MYSQL5.

El problema es que los textos que contienen "acentos" se reemplazan por signos raros. Entonces empeze a analizar los charset.

Probando si es Apache:
<p>una canción Ñ</p> (se muestra correctamente)

Probando si es PHP:
echo 'una canción xD'; (se muestra correctamente)

Luego comprendi, que únicamente los datos devueltos por la Base de Datos "Mysql" muestra aquel resultado de signos raros. Mysql esta puesto en Latin1.

Me pueden ayudar por favor?
Gracias.
  #2 (permalink)  
Antiguo 06/02/2008, 13:41
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 10 años, 9 meses
Puntos: 67
Re: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Ese problema puede tener diferentes orígenes, pero no creo que sea el mysql el que lo genere, ahora bien, lo mas probable en tu caso es que sea el html, para corregir eso solo tienes que agregar esta etiqueta entre las etiquetas <head> y </head>

<meta content="text/html; charset="iso-8859-1" http-equiv="Content-Type" />

Puedes aprender mas al respecto mediante este articulo:

http://www.cristalab.com/tips/34839/...acion-de-texto

Aunque yo prefiero en todo caso usar las entidades, en php existe esta función: htmlentities(string str). Esa función devuelve cualquier texto, codificado con las entidades html en caso que sea necesario. Te explico:

$cad = htmlentities("esto es una canción")

$cad = "esto es una canci&oacute;n"

se ve claramente que la letra "ó" fue reemplezada por "&oacute;", esa es la identidad que hace que se muestre correctamente la o acentuada y no los caracteres raros que dices ver.
  #3 (permalink)  
Antiguo 06/02/2008, 14:07
 
Fecha de Ingreso: mayo-2007
Mensajes: 29
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Gracias por responder ;). La linea HTML que indicas, ya esta puesta.
Sobre utilizar funciones de PHP no seria la solucion ideal, ya que tengo clientes que montan sus phpnukes con material y demas.. y pues no les puedes decir "oye que.. debes poner esa funcion en tus textos" xD

Lo que tengo claro.. es que los signos estos, aparecen únicamente al ser resultados de Base de Datos. Eso si, el texto almecenado en dicha base de datos se ve perfectamente los acentos y tal, pero al mostrar el resultado en pantalla, es ahi donde esta el problem.

Otra solución?
  #4 (permalink)  
Antiguo 06/02/2008, 14:27
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 10 años, 8 meses
Puntos: 36
Re: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Puedes mirarte este post en el que me pasó lo mismo y puedes intentar alguna solución:
http://www.forosdelweb.com/f18/tilde...go-mal-499459/
  #5 (permalink)  
Antiguo 06/02/2008, 15:12
 
Fecha de Ingreso: mayo-2007
Mensajes: 29
Antigüedad: 10 años, 6 meses
Puntos: 0
Re: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Gracias Raul, probare aquel scrip para reemplazar los acentos.
Aun asi no entiendo una cosa.

- Exporto una base de datos con UTF8
- La pagina utiliza también: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Pues el resultado es mostrar signos raros.. donde estaría el problema?
Por otro lado como se consigue saber que Charset tiene una base de datos en concreto?
  #6 (permalink)  
Antiguo 07/02/2008, 10:00
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 10 años, 9 meses
Puntos: 67
Re: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Ah ya veo, pensé que tú mismo habías programado esa página por eso te dije que hicieras eso, de ningún modo los usuarios podrían colocar esa función, no sólo por lo incómodo sino porque es simplemente imposible ya que ellos solo escriben texto en una caja de textos, no tienen acceso a la programación. La recomendación de la función php era para ti no para tus usuarios, pero parece que no sabes mucho de programación, en fin. Bueno, que asunto tan problemático, algo me dice que el problema es de tu navegador, prueba con otros. Definitivamente no es la base de datos aunque te paresca que si, según mi experiencia el mysql nunca trae problemas con eso, aunque me puedo equivocar.
  #7 (permalink)  
Antiguo 07/02/2008, 11:43
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 10 años, 8 meses
Puntos: 36
Re: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Guarda tus archivos como UTF-8. Por ejemplo, en el Bloc de Notas, dale a Guardar como... y en codificación pon UTF-8.
  #8 (permalink)  
Antiguo 07/02/2008, 11:46
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 12 años, 3 meses
Puntos: 12
Re: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

y si mejor quitas las etiquetas HTML???

yo las usaba y tenia muchos problemas, las quite y problema resuelto
  #9 (permalink)  
Antiguo 17/06/2008, 12:06
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Gracias MoDoRro !!!
Quité la sentencia:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Y puede agregar correctamente los acentos a la BD SQL e inclusive las ñ
  #10 (permalink)  
Antiguo 09/07/2008, 03:57
 
Fecha de Ingreso: julio-2008
Mensajes: 3
Antigüedad: 9 años, 5 meses
Puntos: 0
Gracias

Señor Raulmmmm, es usted un genio. Gracias por su solución, muy sencilla pero muy efectiva.
  #11 (permalink)  
Antiguo 03/03/2009, 03:08
 
Fecha de Ingreso: marzo-2008
Ubicación: Barcelona
Mensajes: 35
Antigüedad: 9 años, 8 meses
Puntos: 2
De acuerdo Respuesta: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Buenos dias!
Yo me he encontrado con lo mismo en mi servidor Debian etch con php5 y mysql.
Mysql funciona bien, todo esta bien pero no encontraba el problema.
Me he ido a /etc/apache2/apache2.conf y en la linea 446 he descomentado
"AddDefaultCharset ISO-8859-1".

justo después, "apache2ctl restart" y a funcionar ;)
Espero que te pueda servir!

Saludos :)
--------------
necorage || necorage.com en construccion :D
  #12 (permalink)  
Antiguo 04/03/2009, 13:06
Avatar de lemattma  
Fecha de Ingreso: marzo-2009
Ubicación: Santiago
Mensajes: 49
Antigüedad: 8 años, 9 meses
Puntos: 3
Respuesta: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Si supieran los dolores de cabeza que me provoco este tema!!
Los charsets son como idiomas no puedes (en teoria) poner a hablar a un sueco con un chileno (yo), por lo tanto, ojo con los charset de las bases de datos y como los rescatan y manejan con PHP que tb puede tener distinto charset y luego que charset tiene la pagina html como tal.

Hay funciones y modulos PHP para convertir datos de un charset a otro.


Me ha pasado tb que todo concuerda, pero aun salen esos signos, y creando la pagina de nuevo se arregla.

Recomiendo UTF-8

Última edición por lemattma; 04/03/2009 a las 13:07 Razón: me falto algo =P
  #13 (permalink)  
Antiguo 26/08/2010, 10:03
Avatar de yadirgomez  
Fecha de Ingreso: mayo-2010
Ubicación: Lima, Perú
Mensajes: 15
Antigüedad: 7 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Re: Acentos y Ñ, no es PHP, no es APACHE, Mysql?

Cita:
Iniciado por ElJavista Ver Mensaje
Ese problema puede tener diferentes orígenes, pero no creo que sea el mysql el que lo genere, ahora bien, lo mas probable en tu caso es que sea el html, para corregir eso solo tienes que agregar esta etiqueta entre las etiquetas <head> y </head>

<meta content="text/html; charset="iso-8859-1" http-equiv="Content-Type" />

Puedes aprender mas al respecto mediante este articulo:

[URL="http://www.cristalab.com/tips/34839/entidades-html-charset-y-codificacion-de-texto"]http://www.cristalab.com/tips/34839/entidades-html-charset-y-codificacion-de-texto[/URL]

Aunque yo prefiero en todo caso usar las entidades, en php existe esta función: htmlentities(string str). Esa función devuelve cualquier texto, codificado con las entidades html en caso que sea necesario. Te explico:

$cad = htmlentities("esto es una canción")

$cad = "esto es una canci&oacute;n"

se ve claramente que la letra "ó" fue reemplezada por "&oacute;", esa es la identidad que hace que se muestre correctamente la o acentuada y no los caracteres raros que dices ver.
ME funcionó PERFECTO! GRacias
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 10:23.