Foros del Web » Programando para Internet » PHP »

Problema para mostrar acentos y caracteres especiales

Estas en el tema de Problema para mostrar acentos y caracteres especiales en el foro de PHP en Foros del Web. El problema que estoy teniendo es que despues de bajar varios textos de mi base de datos los mismos se ven diferente con un meta ...
  #1 (permalink)  
Antiguo 28/08/2012, 13:54
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Problema para mostrar acentos y caracteres especiales

El problema que estoy teniendo es que despues de bajar varios textos de mi base de datos los mismos se ven diferente con un meta diferente.


Lo que hago es copiar informacion de una pagina externa usando una funcion curl que me devuelve todo el texto pero la misma tiene el siguiente meta:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Por lo que todos los textos parecen estar codificados con ese iso, si trato de guardarlos en mi tabla (cotejada con latin1_spanish_ci) no me guarda los acentos, ñ y algunos caracteres.

Lo que hice fue cambiar el cotejado a utf8_spanish_ci , y ahi se suben los datos correctamente. El tema es que ahora para verlos bien tengo que poner el mismo meta en todas mis paginas
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

y entonces en los datos viejos deja de verse los acentos y ñ . Para que se vean tiene que estar puesto el meta :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Como puedo hacer para solucionar esto? No se pueden varios charset diferentes verdad?

De paso, que codificacion me recomiendan usar? Se van a ingresar acentos, algunos caracteres extraños (simbolos como los de musica, corazones, etc.) y la letra ñ .

Saludos y espero entiendan el problema.
  #2 (permalink)  
Antiguo 28/08/2012, 13:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema para mostrar acentos y caracteres especiales

UTF-8 es el estándar, apegate a el.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/08/2012, 14:00
Avatar de poncharelo_69  
Fecha de Ingreso: octubre-2011
Ubicación: Queretaro
Mensajes: 86
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Problema para mostrar acentos y caracteres especiales

Hace mucho tuve el mismo problema hasta que investigando me encontre con esa fabulosa ayuda que no me ha fallado, espero te sirva.

Acentos
  #4 (permalink)  
Antiguo 28/08/2012, 15:21
Avatar de lemyboy  
Fecha de Ingreso: agosto-2012
Ubicación: City Bell
Mensajes: 15
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Problema para mostrar acentos y caracteres especiales

si ya estas metido en el baile y tenés codificaciones mezcladas, podes usar en php utf8_encode y utf8_decode, dos funciones que te van a permitir convertir segun te convenga.

Saludos.
  #5 (permalink)  
Antiguo 28/08/2012, 16:35
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Problema para mostrar acentos y caracteres especiales

Cita:
Iniciado por poncharelo_69 Ver Mensaje
Hace mucho tuve el mismo problema hasta que investigando me encontre con esa fabulosa ayuda que no me ha fallado, espero te sirva.

Acentos
Hice lo que muestra en el tutorial, pero ahora en cada lugar donde haya un acento o Ñ se corta la cadena.

Es decir supongamos que quiero subir:

$string = "Mi nombre es Juan y él es Pedro.";

cuando subo la cadena se sube hasta el caracter anterior a "é" . Si no tiene ninguno de esos caracteres funciona bien asique el problema es eso.

Alguien tiene idea que puede ser?
  #6 (permalink)  
Antiguo 28/08/2012, 16:48
Avatar de manueldelavega  
Fecha de Ingreso: agosto-2012
Mensajes: 5
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema para mostrar acentos y caracteres especiales

En un proyecto tenía un problema similar, en mi base de datos tengo almacenado el texto AÑO NUEVO, al leerlo y mostrarlo en pantalla me aparecía esto A? NUEVO, lo solucione como dice lemyboy al leer el dato de la base de datos lo hago de la siguiente manera:

$texto = utf8_encode($registro["texto"]);

Ahora, al parecer tu problema es a la inversa, entonces lee los datos de la siguiente manera:

$texto = utf8_decode($registro["texto"]);
  #7 (permalink)  
Antiguo 28/08/2012, 16:59
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Problema para mostrar acentos y caracteres especiales

Solucionado.

Por si alguno tiene el mismo problema lo que hice fue:
// Setea la codificacion a utf8_spanish (si la pones utf_unicode se corta el texto en los acentos)
$acentos = mysqli_query($db,"SET NAMES 'utf8_spanish_ci'")

// Codifico el texto con utf8
$texto = utf8_encode(mysql_escape_string($text));


Gracias a los que me dieron una mano.

Etiquetas: acentos, caracteres, especiales, html, tabla
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 09:33.