共有两个页面,时而不会乱码,时而乱码,郁闷死了,那位高手帮忙解决一下,谢谢..
显示页面的全部代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="zh-CN" lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>ajax测试</title>
<script language="javascript" type="text/javascript">
function getAjax(){ 
  var ajax=false;  
  try {  
   ajax = new ActiveXObject("Msxml2.XMLHTTP");  
  }catch(e){  
   try {  
    ajax = new ActiveXObject("Microsoft.XMLHTTP");  
   }catch(E){  
    ajax = false;  
   }  
  } 
  if (!ajax && typeof XMLHttpRequest!='undefined') {  
   ajax = new XMLHttpRequest();  
   if (ajax.overrideMimeType)  
   { 
     ajax.overrideMimeType('text/xml'); 
   } 
  }  
  return ajax; 
 }  function showhelp(url,pid,wid,count,objID){ 
  var serverPage; 
  var objdiary = document.getElementById(objID);
   serverPage=url+"?"+"productid="+pid+"&webid="+wid+"&count="+count;
  serverPage +="&"+Math.random(); 
  var ajaxFri = getAjax();    
  ajaxFri.open("GET", serverPage, true);  
  ajaxFri.onreadystatechange = function() {  
   if (ajaxFri.readyState == 4 && ajaxFri.status == 200) {  
    var text = ajaxFri.responseText;  
    if(text!=0){ 
     objdiary.innerHTML=unescape(text); 
    } 
   }  
  }  
    ajaxFri.send(null);  
 } </script>
</head>
<body>
<span id="Help001"></span>
<script language="javascript" type="text/javascript">
showhelp("/gethelp1.asp","1","2","1","Help001");
</script>
</body>
</html>
gethelp1.asp的代码:
<%
str1="<div id='bottom-faq'>数据一、数据二、数据三</div>"
return_str=str1
response.ContentType = "text/html" 
response.Charset = "gb2312"
response.write return_str
response.end
%>

解决方案 »

  1.   

    为什么有时候乱码,有时候不乱码,我也不清楚。不过我感觉用utf-8的编码在大多数情况下都没问题,我都是用utf-8的编码。
      

  2.   

    与编码是有点关系,不过我想还是上面函数的代码有点问题吧
    getAjax()中间代码有点问题,
    还有
    serverPage=url+"?"+"productid="+pid+"&webid="+wid+"&count="+count; 
    serverPage +="&"+Math.random();  
    为什么下面这句serverPage +="&"+Math.random(); 
    不加个参数呢
    serverPage +="&参数="+Math.random(); 
      

  3.   

    如一楼所说。Ajax处理的编码是UTF-8的,所以。。你还是对你的被调用页面进行一下特殊处理吧!
      

  4.   

    javascript下ajax的xml使用的是utf-8编码的,网上一搜有很多解说。
    response设置成uft-8编码,而网页设置为gb2312或者gbk编码
      

  5.   

    用utf-8编码和解码,
    在页面上用 ajax提交数据之前编码:encodeURI(param)
    服务器解码:接受到param后, 
         String str = java.net.URLDecoder.decode(param, "UTF-8"); 
      

  6.   

    象你这样用 innerHTML的方式 asp文件最好用\uxxxx方式返回
      

  7.   

    谢谢您whetu  
    String str = java.net.URLDecoder.decode(param, "UTF-8");  
    这是java的吧,我用的是javascript来的.当中的属性应该不一致吧.gzdiablo,谢谢您,是啊,我是用innerHtml的方式,asp文件最好用\uxxxx方式返回,能不能说详细一点.
      

  8.   

    给你个vbs方法Function coverToUnicode(str)
    dim char
    for i=0 to len(str) - 1
    char = HEX(AscW(Mid(str,i+1,1)))
    if len(char)<3 then
    coverToUnicode = coverToUnicode & "\x" & char
    else
    coverToUnicode = coverToUnicode & "\u" & char
    end if
    next
    end Function服务器端asp代码中 把带中文的字符串用这个方法编码一下