首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • ajax乱码问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • marcus007
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-24 19:06:01 楼主
    共有两个页面,时而不会乱码,时而乱码,郁闷死了,那位高手帮忙解决一下,谢谢..


    显示页面的全部代码:

    <!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
    %>


    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Web_Developer
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 20:14:301楼 得分:0
    为什么有时候乱码,有时候不乱码,我也不清楚。不过我感觉用utf-8的编码在大多数情况下都没问题,我都是用utf-8的编码。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kong521
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-24 21:23:452楼 得分:0
    与编码是有点关系,不过我想还是上面函数的代码有点问题吧
    getAjax()中间代码有点问题,
    还有
    serverPage=url+"?"+"productid="+pid+"&webid="+wid+"&count="+count;
    serverPage +="&"+Math.random(); 
    为什么下面这句serverPage +="&"+Math.random();
    不加个参数呢
    serverPage +="&参数="+Math.random();
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • java2000_net
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      2

      8

    发表于:2008-05-24 21:43:123楼 得分:0
    如一楼所说。Ajax处理的编码是UTF-8的,所以。。。。。

    你还是对你的被调用页面进行一下特殊处理吧!

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • marcus007
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 01:02:104楼 得分:0
    谢谢各位了.
    郁闷,还是搞不定.

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • scomouse
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 01:23:555楼 得分:0
    javascript下ajax的xml使用的是utf-8编码的,网上一搜有很多解说。
    response设置成uft-8编码,而网页设置为gb2312或者gbk编码
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • marcus007
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-25 22:09:126楼 得分:0
    郁闷,时好时坏才怪.
    不知道是什么原因.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • whetu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-26 09:13:147楼 得分:0
    用utf-8编码和解码,
    在页面上用 ajax提交数据之前编码:encodeURI(param)
    服务器解码:接受到param后,
        String str = java.net.URLDecoder.decode(param, "UTF-8");
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gzdiablo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-26 09:38:518楼 得分:0
    象你这样用 innerHTML的方式 asp文件最好用\uxxxx方式返回
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • marcus007
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-26 10:35:139楼 得分:0
    谢谢您whetu 
    String str = java.net.URLDecoder.decode(param, "UTF-8"); 
    这是java的吧,我用的是javascript来的.当中的属性应该不一致吧.

    gzdiablo,谢谢您,是啊,我是用innerHtml的方式,asp文件最好用\uxxxx方式返回,能不能说详细一点.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gzdiablo
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-26 13:38:4710楼 得分:0
    给你个vbs方法

    VBScript code
    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代码中 把带中文的字符串用这个方法编码一下
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved