var xmlhttp;
try
{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}
catch (e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
catch (e){try{xmlhttp=new XMLHttpRequest();}
catch (e){}
}
}
xmlhttp.open("get",fname);
xmlhttp.onreadystatechange=function()
{if(4==xmlhttp.readyState){
if(200==xmlhttp.status){msg=xmlhttp.responseText;}
else{msg="网络链接失败!";}
}else{msg="数据读取中,请稍后…";
}
var ch=document.getElementById("SearchLayer");
ch.innerHTML=msg; 
}
xmlhttp.send(null); 
return false;
以上是代码片段,读取的URL页面是Gb2312,这是没法改的,到msg=xmlhttp.responseText;这句的时候是已经能成功读取,ch.innerHTML=msg; 的时候由于ch.innerHTML是在Gb2312环境下的,也是没法改的,所以希望高手能帮我解决在ch.innerHTML显示出来时不是乱码。

解决方案 »

  1.   

    你要设置返回的数据编码
    如果是asp要加上Response.ContentType="text/html; charset=gb2312"
      

  2.   

    请求的页面是否在代码第一行(<%后的第一行)就有:
                          <%
                            Response.ContentType="text/html"
                            Response.Charset="GB2312"
      

  3.   

    加了,但还是乱码http://uyear.paangood.com/js/h1.html 大家帮看下,先谢谢了
    读取的URL页面“歌曲”是UTF-8编码的,歌曲名是GB2312,要是“歌曲”变成乱码,歌曲名正常显示那就成功了。
      

  4.   

    http://uyear.paangood.com/js/h1.html 这是全静态的,哪有后台
      

  5.   

    参考这个:
    xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" ); 
    xmlhttp_request.setRequestHeader("Content-Type","text/xml"); 
    xmlhttp_request.setRequestHeader("Content-Type","gb2312");