Foros del Web » Programando para Internet » PHP »

Problema con acentos y ñ

Estas en el tema de Problema con acentos y ñ en el foro de PHP en Foros del Web. Hola amigos, tengo un problema con mi pagina web que no reconoce los acentos ni las ñ. En mi pagina tengo un chat y un ...
  #1 (permalink)  
Antiguo 29/06/2009, 20:45
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 2
Problema con acentos y ñ

Hola amigos, tengo un problema con mi pagina web que no reconoce los acentos ni las ñ.

En mi pagina tengo un chat y un foro, toda la informacion que se registra en el chat y foro se registra en mi base de datos, cuando una persona ingresa un mensaje con acentos y ñ en el foro y chat esas ñ y acentos se guardan perfectamente en mi la base de datos pero cuando se le hace el llamado en php y se visualiza html me salen unos caracteres muy raros.

No me muestra ni los acentos ni las ñ, sino que muestra unos caracteres muy extraños, como podria solucionar eso?

ya coloque un

Código PHP:
<? echo htmlentities($mensaje);?>
y

tambien use un meta para que reconosca los caracteres

y nada me sigue saliendo mal!


Como puedo solucionar eso? ayuda por favor!
  #2 (permalink)  
Antiguo 29/06/2009, 22:05
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Problema con acentos y ñ

probaste trayendo los datos con utf8_encode o decode?

Código php:
Ver original
  1. <?php
  2. echo utf8_encode("$tu_texto");
  3. ?>

ahora bien, supongo tienes charset
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
para ingreso y muestra de datos?
de no funcionar muestranos como se guardan los datos en tu base de datos y que tipo de cotejamiento tiene la misma, lo otro htmlentities se usa para el ingreso de datos, cuando ingresas los datos pones htmlentities($variable_ingreso), ya despues para mostrar el navegador reconoceria un acento de tipo &iacute; ===> í por ejemplo
saludos....
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 29/06/2009, 22:09
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Problema con acentos y ñ

La manera es .

Código PHP:

echo utf8_decode("Mañanas de programación PHP"); 
  #4 (permalink)  
Antiguo 30/06/2009, 06:16
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Problema con acentos y ñ

Yo prefiero reemplazar por ejemplo á por &aacute; o ñ por &ntilde; . Nunca escribo tildes ni ñ ni nada en mis códigos, utilizo la codificación estándar html.

Un saludo.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #5 (permalink)  
Antiguo 30/06/2009, 09:26
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Problema con acentos y ñ

Cita:
Iniciado por CHuLoSoY Ver Mensaje
Yo prefiero reemplazar por ejemplo á por &aacute; o ñ por &ntilde; . Nunca escribo tildes ni ñ ni nada en mis códigos, utilizo la codificación estándar html.

Un saludo.


Como logro hacer eso? como logro hacer esa validacion? con un while o if?
puedes darme un ejemplo amigo!

Gracias!
  #6 (permalink)  
Antiguo 30/06/2009, 09:32
Avatar de joelluis17  
Fecha de Ingreso: septiembre-2008
Mensajes: 182
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Problema con acentos y ñ

Cita:
Iniciado por kaninox Ver Mensaje
probaste trayendo los datos con utf8_encode o decode?

Código php:
Ver original
  1. <?php
  2. echo utf8_encode("$tu_texto");
  3. ?>

ahora bien, supongo tienes charset
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
para ingreso y muestra de datos?
de no funcionar muestranos como se guardan los datos en tu base de datos y que tipo de cotejamiento tiene la misma, lo otro htmlentities se usa para el ingreso de datos, cuando ingresas los datos pones htmlentities($variable_ingreso), ya despues para mostrar el navegador reconoceria un acento de tipo &iacute; ===> í por ejemplo
saludos....


si amigo yo tengo el meta

Código PHP:
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
y no e probado con
Código PHP:
<?php
echo utf8_encode("$tu_texto");
?>
en mi base de dato mis campos son
Código:
latin1_general_ci
y el Juegos de caracteres de MySQL de mi base de dato esta en
Código:
 UTF-8 Unicode (utf8)
y mi Cotejamiento de las conexiones MySQL esta en
Código:
utf8_unicode_ci
que me recomiendas!
  #7 (permalink)  
Antiguo 30/06/2009, 15:11
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Problema con acentos y ñ

mira lo que te propone CHuLoSoY, es algo que solo aplica para gente que sabe de html, digo si yo se que é se hace &eacute; ok pero los clientes no van a estar escribiendo .....

Código:
Esta ma&ntilde;ana de s&aacute;bado sal&iacute; a correr.....
es como si aquí en el foro, "como todos sabemos html", estemos escribiendo con tags y etiquetas, algo que no aplica, te recomiendo hagas una prueba y veamos que pasa en tu caso....

create una pagina y una tabla en base de datos con un "campo" tipo text, solo para probar....

pagina_prueba.php
Código php:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  5. </head>
  6. <body>
  7. <?php
  8. include (conectar.php); //conexion a base datos
  9.  
  10. if (isset($_POST[enviar]) && $_POST[campo])
  11. {
  12. $cadena = htmlentities($_POST[campo]);
  13.  
  14. mysql_query ("INSERT INTO tu_tabla"
  15.  ." (campo)"
  16.  ." Values"
  17.  ." ('$cadena')") or die ("Error ".mysql_error());
  18.  
  19. echo "Se ingreso correctamente";
  20. }
  21. else
  22. {
  23. ?>
  24. <form name="form" method="POST" action="pagina_prueba.php">
  25. <textarea name="campo"></textarea>
  26. </br>
  27. <input type="submit" name="enviar" value="Enviar">
  28. </form>
  29. <?php
  30. }
  31. ?>
  32. </body>
  33. </html>


luego una pagina para ver los datos ingresados

ver.php
Código php:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  5. </head>
  6. <body>
  7. <?php
  8. include (conectar.php); //conexion a base datos
  9.  
  10. $busca = mysql_query("SELECT * FROM tu_tabla");
  11. while ($datos = mysql_fetch_array($busca))
  12. {
  13. echo "$busca[campo]<br />";
  14. }
  15. ?>
  16. </body>
  17. </html>

y vemos en el caso de que salgan caracteres extraños, me pones que cosas guarda tu base de datos, y es cosa de cambiar la codificacion de la tabla en base de datos, en el caso de ir bien con esto, pues en tu codigo habra algo que le cambia el charset a tus datos y lo revisamos, saludos...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:48.