Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/07/2009, 20:29
wichordz
 
Fecha de Ingreso: abril-2009
Mensajes: 18
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta error de codificacion

hola saludos a todos espero me puedan ayudar en el siguiente problema:

en mi sitio tengo una etiqueta <div></div> la cual se recarga cada 2 minutos y manda llamar un archivo php el cual contiene texto plano dicho texto contiene caracteres con la letra ñ y acentos pero al momento de mostrarmelos en el div me pone caracteres extraños en donde van las ñ y acentos. en la codificacion del sitio esta como utf-8, el archivo php hace una consulta a la base de datos que tambien esta en utf-8 todo esta bien en ese archivo solo que al ser mostrado dentro de la etiqueta div que es refrescado mediante ajax es donde me muestra mal los caracteres

el codigo del archivo ajax es el siguiente

Cita:
var seconds = 120;
var divid = "timediv";
var url = "mensajes.php";

function refreshdiv(){

var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Tu explorador no soporta AJAX.");
return false;
}
}
}

fetch_unix_timestamp = function()
{
return parseInt(new Date().getTime().toString().substring(0, 10))
}

var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp;

xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById(divid).innerHTML=xmlHttp.r esponseText;
setTimeout('refreshdiv()',seconds*1000);
}
}
xmlHttp.open("GET",nocacheurl,true);
xmlHttp.send(null);
}

window.onload = function startrefresh(){
setTimeout('refreshdiv()',seconds*1000);
}
el div que se recarga es el siguiente

<div name="timediv" id="timediv">

</div>

el ajax lo mando llamar desde el head con:
<script src="ajax.js" type="text/javascript"></script>

si le agrego el charset="utf-8" a esta etiqueta anterior como quiera me sigue el problema.

en la hoja de estilos css tambien le puse al principio el charset "utf-8"

y el problema sigue la verdad no se que pueda ser espero puedan ayudarme este problema solo esta dentro de esta etiqueta porque en lo que resta de la pagina si puedo utilizar bien esos caracteres como la ñ los acentos etc..

esto es lo que contiene el archivo php

Código PHP:
$str="";

    
$conn con_bdatos();
                  if (!
$conn)
                {
                    
abrir_main();
                echo 
"Error: No se pudo conectar a la base de datos intenta de nuevo mas tarde.";
                exit;
                }
                
$query="select nombre, mensaje from msjs order by id desc limit 0,15";
$consul=mysql_query($query);
if(!
$consul)
$str="Momentaneamente Fuera De Servicio";
else
{
$total=mysql_num_rows($consul);
for(
$i=0;$i<$total;$i++)
{
$fila=mysql_fetch_array($consul);
$auxstr="<b>".ucfirst($fila["nombre"]).":</b> ".ucfirst($fila["mensaje"])." | ";
$str=$str.$auxstr;
}
}
 
echo 
$str
estare pendiente a respuestas saludos =)