PHP - Problema con acento al mostrar texto

   
Vista:

Problema con acento al mostrar texto

Publicado por Rosy (64 intervenciones) el 31/01/2013 21:03:23
Hola, tengo una pagina que hice en PHP y bd MySql, en una de las partes se ingresa el nombre de un producto "nompro" y una descripcion del producto "despro" y los grabo en una tabla MySql. En la descripcion pueden ingresar mucho texto y palabras con acentos o tildes, es por eso que cuando grabo la variable $despro lo hago de la siguiente manera:

$despro = trim(preparar_consulta($_POST["despro"]));

donde prepara_consulta hace lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function preparar_consulta($consulta)
{
    $mq_activado = get_magic_quotes_gpc();
    if(function_exists("mysql_real_escape_string"))
    {
        if($mq_activado)
        {
            $consulta = stripcslashes($consulta);
        }
        $consulta = mysql_real_escape_string($consulta);
    }
    else
    {
        if(!$mq_activado)
        {
            $consulta = addslashes($consulta);
        }
    }
    return $consulta;
}


Esta rutina me la pasaron en un curso que hice y me resulta para el manejo de palabras con caracteres con tilde o acentos. Cuan necesito leer la descripcion del producto desde la tabla y mostrarlo por pantalla, no hay ningun problema me lo muestra bien, sin embargo, tambien debo utilizar una rutina en javascript que debe mostrar la descripcion y ahi tengo problema porque me muestra caracteres extraños. la rutina en javascript es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
<script language="JavaScript">
	function muestra_img(cadena)
	{
	var trozos = cadena.split(":");
	var archivo = trozos[0];
	var descripcion = trozos[1];
 
	document.getElementById('descrip').innerHTML=descripcion;
       document.getElementById('descrip').style.color="#666";
 	document.getElementById('descrip').style.font="Arial, Helvetica, sans-serif";
 	document.getElementById('descrip').style.fontSize="12.2px";
 }



Aqui me muestra la descripcion con caracteres extraños y los tildes no me aparecen.

Existe alguna forma de poder solucionar esto?

Gracias por cualquier ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Problema con acento al mostrar texto

Publicado por xve (5520 intervenciones) el 31/01/2013 21:44:20
Hola Rosy, yo te diría, que revises que las dos paginas, tanto la página normal, como cuando muestras el contenido con javascript, tengan definido el mismo charset en la cabecera de la pagina... por ejemplo:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Si varían, o en alguna de ellas no esta definida, puede ser ahí donde tengas el problema.

Nos puedes comentar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con acento al mostrar texto

Publicado por Rosy (64 intervenciones) el 01/02/2013 12:32:44
Hola xve, el charset que indicas ya está definido en la pagina

Saludos
Rosy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

solucionado!!

Publicado por Rosy (64 intervenciones) el 01/02/2013 13:46:46
xve, te cuento que se solucionó con el siguiente meta:

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

Lo incorporé en la cabecera de los dos archivos php, el que graba y el que muestra y funcionó. Una vez mas muchas gracias por tu ayuda!!

Rosy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

solucionado!!

Publicado por xve (5520 intervenciones) el 01/02/2013 20:25:29
Gracias por comentarlo Rosy!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

solucionado!!

Publicado por Steve (7 intervenciones) el 06/02/2013 17:39:49
Hola Rosy me da gusto que encontraste la forma de resolver tu problema otra forma podría ser si el texto que no puedes mostrar lo vas ha imprimir en PHP podrías usar la función
1
echo htmlentities($cadena);

Es bastante útil pero solo sirve para PHP creo que la mejor solución que pudiste encontrar fue poner ese meta en la cabecera es la mejor solución.
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar