Foros del Web » Programando para Internet » PHP »

problema con acentos

Estas en el tema de problema con acentos en el foro de PHP en Foros del Web. buenas no me salen bien los acentos...el cotejamiento del campo de la base de datos es utf8_unicode_ci y en la web me sale simbolos negros ...
  #1 (permalink)  
Antiguo 25/04/2011, 10:21
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
problema con acentos

buenas no me salen bien los acentos...el cotejamiento del campo de la base de datos es
utf8_unicode_ci y en la web me sale simbolos negros con interrogaciones

la informacion en la base de datos la guardo con los acentos asi ó í é ú ñ

he descubierto que si lo guardo asi á me funciona bien..
estoy haciendo una web multi-idioma por eso guardo el cotejamiento del campo en la base de datos como utf8_unicode_ci

Alguien que entienda de esto que me pueda explicar que hacer...

Un saludo y gracias.
  #2 (permalink)  
Antiguo 25/04/2011, 10:39
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 13 años
Puntos: 46
Respuesta: problema con acentos

convierte tu variable antes de guardar en la DB en HTML ENTITIES
aca te dejo para que leas un poco sobre el tema:
[URL="http://www.php.net/manual/es/function.htmlentities.php"]http://www.php.net/manual/es/function.htmlentities.php[/URL]
__________________
Agregadecer no cuesta nada O SI?
  #3 (permalink)  
Antiguo 25/04/2011, 10:55
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: problema con acentos

gracias rikardoz por responder...
pero lo que dices en que formato lo guarda?....

en verdad los datos estan guardados ya ..no hay una forma de que al mostrarlos se vean bien....

si tengo "camión" guardado en la base de datos por ejemplo...
porque al ponerlo en la web me sale un simbolo negro con un interrogante en vez del acento...
tengo que volver a modificar todos los texto de la base de datos por acentos de este tipo á ?¿?¿?¿

Un saludo.
  #4 (permalink)  
Antiguo 25/04/2011, 11:05
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 13 años
Puntos: 46
Respuesta: problema con acentos

tu lo configuras al formato que desees podria ser asi:
echo htmlentities($str, ENT_QUOTES, "UTF-8");
o
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1");
y cuando muestres los resultados simplemente colocas en los headers que tipo de codificacion es.
__________________
Agregadecer no cuesta nada O SI?
  #5 (permalink)  
Antiguo 25/04/2011, 11:07
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 13 años
Puntos: 46
Respuesta: problema con acentos

sobre eso del interrogante con acentro negro, yo tambien tenia ese problema lo arreglue con un decode :
http://www.php.net/manual/es/function.htmlspecialchars-decode.php

te recomiendo que leas esos manuales, a mi me ayudo bastante
__________________
Agregadecer no cuesta nada O SI?
  #6 (permalink)  
Antiguo 25/04/2011, 11:38
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: problema con acentos

gracias por molestarte tanto, se te agradece mucho!

aver no entiendo que cada vez que ponga un dato de la base de dato tenga que usar
echo htmlentities($str, ENT_QUOTES, "ISO-8859-1");
que puede que funcione pero no veo tiene que ver algo mas generico...


y sobre el manual me sale en ingles...... lo intento pero esos manuales no lo consigo entender...


Un saludo..
  #7 (permalink)  
Antiguo 25/04/2011, 12:14
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: problema con acentos

creo que no es compplicado lo que pido...si en la base de datos esta asi "ó "me sale mal en la web y si en la base de datos esta asi ó me sale bien....

que puedo modificar para que estando asi "ó" en la base de datos me salga bien en la web
  #8 (permalink)  
Antiguo 25/04/2011, 12:21
Avatar de Unxky28  
Fecha de Ingreso: marzo-2006
Mensajes: 82
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: problema con acentos

Hola prueba en tu datos que esten bien configurados, tambien fijate como está tu META del HTML, por ejemplo:

Código PHP:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Ahora puedes usar estas dos funciones de php:

Código PHP:
Ver original
  1. http://php.net/manual/en/function.utf8-encode.php
  2. http://php.net/manual/en/function.utf8-decode.php

Saludos.
__________________
El Futuro esta en Tus Manos...
  #9 (permalink)  
Antiguo 25/04/2011, 12:28
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: problema con acentos

El Meta del html es ese el que tengo....y sigue sin funcionar....

tengo el mismo cotejamiento..en la base de datos, en la tabla y en el campo ....
utf8_unicode_ci
sigue sin funcionar me sigue saliendo los rombos negros ..
gracias de toda forma..
llevo toda la tarde y no doy con el error....
  #10 (permalink)  
Antiguo 25/04/2011, 13:03
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 13 años
Puntos: 46
Respuesta: problema con acentos

mira supongamos que tienes tu variable asi:
$datos['sql']
trata de hacer eso :
<?
$var1 = $datos['datos1'];
$encode = utf8_encode($var1);
$decode = utf8_decode($encode);
echo "$decode";
?>
y no te olvides de poner dentro de los <HEAD> el:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
nos cuentas como te fue
__________________
Agregadecer no cuesta nada O SI?
  #11 (permalink)  
Antiguo 25/04/2011, 13:10
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: problema con acentos

solo pone htmlentities() cuando quieras imprimir algo de tu base de datos

echo htmlentities($row['campo']);
  #12 (permalink)  
Antiguo 25/04/2011, 13:20
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: problema con acentos

Gracias stramin
lo he hecho con htmlentities y me funciono!! con que tonteria se lleva uno media tardeeeee!!

gracias a todos!!
  #13 (permalink)  
Antiguo 25/04/2011, 14:34
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 13 años
Puntos: 46
Respuesta: problema con acentos

jajajaja pero si desde un comienzo te dije que utilizaras htmlentities ....
__________________
Agregadecer no cuesta nada O SI?
  #14 (permalink)  
Antiguo 25/04/2011, 14:51
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: problema con acentos

claro rikardoz!! jaja pero como me dijiste que tenia que ponerlo antes de guardar en la base de datos me hizo pensar que el error era antes...y yo segui pensando que era a la hora de recoger el valor de la base de datos...
de todas forma el tutorial no lo entiendo y como me lo han puesto lo he entendido mejor...
gracias de todas formas!!!!
  #15 (permalink)  
Antiguo 26/04/2011, 04:03
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: problema con acentos

hola a todos de nuevo he descubierto una forma mucho mejor que la que tenia y queria compartirlo.

he añadido este codigo en mi archivo de conexion.php

Código PHP:
mysql_query ("SET NAMES 'utf8'"); 
despues de la conexiona la base de datos, quedando asi:

Código PHP:
$dbhost="localhost";  
$dbusuario="root";
$dbpassword=""
$db="mi_base";
$conexion=mysql_connect($dbhost$dbusuario$dbpassword) or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db($db$conexion)or die ('Error al seleccionar la Base de Datos: '.mysql_error());

mysql_query ("SET NAMES 'utf8'"); 
de esta forma no hace falta estar poniendo ni htmlentities, utf8_encode ni utf8_decode


Un saludo.
  #16 (permalink)  
Antiguo 26/04/2011, 06:40
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: problema con acentos

eso me salvaría bastante, estas seguro que funciona? voy a empezar a probarla.
  #17 (permalink)  
Antiguo 26/04/2011, 06:54
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: problema con acentos

hombre a "seguro" lo metieron preso pero a mi me ha funcionado

recuerda tener
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

y que el cotejamiento de la base de datos sea tipo utf8


asi es como lo tengo yo..no se si habra algo mas a tener en cuenta...

si te funciona cuentanoslo !!

Un saludo.

Etiquetas: acentos
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 17:25.